因此,在活动 1 中,我单击一个按钮进入活动 2。在活动 2 中,我将一些数据输入到 EditText 中。当我点击手机上的后退按钮时,它会将我带到活动 1,这是正确的,但如果我再次点击活动 1 按钮,我在 EditText 中输入的任何文本都会消失。我确信这是因为每次按下按钮时我都会开始一个新的意图,并且我认为我需要使用标志,但我不确定。下面是我的基本 MainActivity1 和 MainActivity2 ,没有我尝试过但不起作用的代码。
**编辑:退出应用程序后,所有保存的数据都需要删除。
主要活动1
public class MainActivity extends Activity {
Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = (Button)findViewById(R.id.button2);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i = new Intent(MainActivity.this,MainActivity2.class);
startActivity(i);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
主要活动2
public class MainActivity2 extends Activity {
EditText et1;
@Override
protected void onCreate(Bundle outState) {
super.onCreate(outState);
setContentView(R.layout.activity_main_2);
et1 = (EditText)findViewById(R.id.editText1);
}
}
}
先感谢您。
尝试这个
将这些代码复制到您的 MainActivity2 中,它将保存您的数据(即您的 EditText 数据)
public class MainActivity2 extends Activity {
EditText et1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_2);
et1 = (EditText)findViewById(R.id.editText1);
loadSavedPreferences();
}
private void loadSavedPreferences() {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
et1.setText(sharedPreferences.getString("string_et1",""));
}
private void savePreferences(String key, String value) {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
public void saveData(){
savePreferences("string_et1", et1.getText().toString());
}
@Override
public void onBackPressed(){
saveData();
super.onBackPressed();
}
}
如果您想在退出应用程序时删除首选项,请在 MainActivity1 中尝试此操作。
public class MainActivity extends Activity {
Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = (Button)findViewById(R.id.button2);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i = new Intent(MainActivity.this,MainActivity2.class);
startActivity(i);
}
});
}
@Override
public void onBackPressed() {
clear_pref();
}
public void clear_pref(){
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)