[英]Shared Preferences Issue? Android Java
嗨,我已经使用共享首选项将字符串存储在“已验证”中。 在主要活动上,我只需要能够获取字符串,它将在if语句中使用。 在经过验证的活动中,我必须能够在editText中输入一个值,并且它将永久存储该值(即使在关闭应用程序时也是如此),直到删除该应用程序为止。 这是我的代码,它当前不保存永久字符串。 我认为这可能与OnClickListner有关? 但我不确定。
主要活动
public class MainActivity extends Activity {
public static final String Verified = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);Context.MODE_PRIVATE);
SharedPreferences settings = getSharedPreferences(Verified, 0);
String value = settings.getString("key","");
if (MobileVerified.equals("")){
...
经过验证的课程
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.verified);
Button VerifyCompleteButton = (Button) findViewById(R.id.VerifyCompleteButton);
VerifyCompleteButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
String NumberString;
String Verified;
Bundle bundle = getIntent().getExtras();
NumberString = bundle.getString("NumberString");
Verified = bundle.getString("Verified");
//set String Verified permenantly
SharedPreferences settings = getSharedPreferences(Verified, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("key", NumberString);
editor.commit();
}
});
}
对于崩溃,您应该提供stacktrace,但至少这是显而易见的:
SharedPreferences settings = getSharedPreferences(Verified, 0);
在成员变量初始化阶段,您将Activity
用作Context
为时过早。 将getSharedPreferences()
和以下getValue()
调用移至onCreate()
。
之后,请确保在两个地方都将相同的首选项文件名传递给getSharedPreferences()
。 getSharedPreferences(Verified, ...)
似乎不是您所需要的,而是使用类似getSharedPreferences("verified", ...)
。
初始化SharedPreferences
对象内部onCreate()
之前代替onCreate()
如下面的方法...
SharedPreferences settings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = PreferenceManager.getDefaultSharedPreferences(this);
String value = settings.getString("key","");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.