共享偏好问题? Android Java

时间:2014-03-10 16:27:51

标签: java android sharedpreferences gettext settext

您好我已经使用共享偏好设置将字符串存储在“已验证”中。在主要活动上,我只需要能够获取字符串,它将在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();


           } 



           });


 }

2 个答案:

答案 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","");
}