您好我已经使用共享偏好设置将字符串存储在“已验证”中。在主要活动上,我只需要能够获取字符串,它将在if语句中使用。 在已验证的活动上,我必须能够在editText中输入一个值,它将永久存储它(即使应用程序已关闭),直到删除该应用程序。 这是我的代码,它目前不会保存永久字符串。我想这可能与OnClickListner有关?但我不确定。
的 MainActivity 的
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();
}
});
}
答案 0 :(得分:0)
对于崩溃你应该提供堆栈跟踪,但至少这是一个明显的:
SharedPreferences settings = getSharedPreferences(Verified, 0);
您在成员变量初始化阶段过早地使用Activity
作为Context
。将getSharedPreferences()
和以下getValue()
来电移至onCreate()
。
之后,请确保您在两个地方都将相同的首选项文件名传递给getSharedPreferences()
。 getSharedPreferences(Verified, ...)
似乎不是您需要的,而是使用类似getSharedPreferences("verified", ...)
的内容。
答案 1 :(得分:0)
在SharedPreferences
之内初始化onCreate()
对象,而不是onCreate()
方法,如下所示...
SharedPreferences settings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = PreferenceManager.getDefaultSharedPreferences(this);
String value = settings.getString("key","");
}