SharedPreferences Android - 仅使用两个活动保存和编辑一个字符串

时间:2013-06-16 13:09:15

标签: android views sharedpreferences

我有一个用户将编辑的字符串,并在他使用该应用程序时显示给他。他可以随时编辑字符串。我熟悉SQLite数据库,但因为为此我只使用一个字符串/一个记录,我觉得SharedPreferences会更好。但是,在完成两个不同的教程后,我无法得到它,所以保存数据。在这两种情况下,我都需要修改教程代码,因为我将使用两个活动,一个用于查看代码,另一个用于编辑代码。我无法找到将共享偏好用于两个活动的教程。以下是代码。

查看代码的类:

public class MissionOverviewActivity extends Activity {

TextView textSavedMem1;


       /** Called when the activity is first created. */
       @Override
       public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.mission_view);

           textSavedMem1 = (TextView)findViewById(R.id.textSavedMem1);


           LoadPreferences();

           textSavedMem1.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {
                    finish();
                    return;
                }});


       };



       private void LoadPreferences(){
        SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
        String strSavedMem1 = sharedPreferences.getString("MEM1", "");

        textSavedMem1.setText(strSavedMem1);

       }


      } 

编辑代码并返回视图页面的类

public class MissionDetailActivity extends Activity {

EditText editText1;
Button buttonSaveMem1;

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.mission_edit);

       editText1 = (EditText)findViewById(R.id.editText1);
       buttonSaveMem1 = (Button)findViewById(R.id.buttonSaveMem1);


       buttonSaveMem1.setOnClickListener(buttonSaveMem1OnClickListener);


   }

   Button.OnClickListener buttonSaveMem1OnClickListener
    = new Button.OnClickListener(){

  @Override
  public void onClick(View arg0) {
   // TODO Auto-generated method stub
   SavePreferences("MEM1", editText1.getText().toString());
   viewStatement();
  }

   };





   private void SavePreferences(String key, String value){
    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(key, value);
    editor.commit();
   }

   protected void viewStatement() {
        Intent i = new Intent(this, MissionOverviewActivity.class);
        startActivity(i);
      }

}

如果有任何机构可以回答这个问题,或者指向一个使用两个类(用于编辑和显示)的共享偏好教程,我们将不胜感激!

由于

1 个答案:

答案 0 :(得分:1)

getPreferences(int)对于Activity是私有的,您希望在以下方式使用的活动之间共享相同的SharedPreference:

SharedPreferences prefs = this.getSharedPreferences(
      "yourfilename", Context.MODE_PRIVATE);

并在您要重新加载时使用相同的方法。 here getPrerences(int)

的文档