我有 2 个活动,一个按意图向另一个发送数据。
我有2个editText供用户在保存后输入值,它将显示在editText框中
savePreferences = getSharedPreferences("filename", Context.MODE_PRIVATE);
first = savePreferences.getString("first", "1st");
second = savePreferences.getString("second", "2nd");
editf1.setText(first);
editf2.setText(second);
在活动1
public static String filename = "myfile";
SharedPreferences savePreferences;
savePreferences = getSharedPreferences("filename", Context.MODE_PRIVATE);
SharedPreferences.Editor saveEditor = savePreferences.edit();
saveEditor.putString("first", edit1.getText().toString());
saveEditor.putString("second", edit2.getText().toString());
saveEditor.commit();
Intent myIntent = new Intent(this, Activity2.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//put the retrieved data in extras
Bundle extras = new Bundle();
extras.putString("firststr", first);
extras.putString("secondstr", second);
myIntent.putExtras(extras);
startActivity(myIntent);
在活动 2
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
firstval = extras.getString("firststr");
secondval = extras.getString("secondstr");
}
我有 2 个 TextView 来显示从 Activity 1 传递的数据
if (firstval == null || firstval == "")
textView1.setText("empty");
else
textView1.setText(firstval);
if (secondval == null || secondval == "")
textView2.setText("empty");
else
textView2.setText(secondval);
当我单击保存按钮时,值将保存到共享首选项中,并且意图将启动并转到 Activity2。在这个阶段,从 Activity1 保存和传递的值能够显示在我的 TextViews 中。
但是一旦我刷新页面,TextView 就会显示为空。
当我的应用程序启动时,Activity2 将首先启动,TextView 也显示为空。如何使当我打开我的应用程序或刷新我的应用程序时,intent extra 的值始终存在?而不是去 Activity1 再次保存它。