gpt4 book ai didi

android - 点击后退按钮时将数据保存在编辑文本中

转载 作者:太空宇宙 更新时间:2023-11-03 12:36:13 25 4
gpt4 key购买 nike

因此,在 Activity 1 中,我单击一个按钮将我带到 Activity 2。在 Activity 2 中,我将一些数据输入到 EditText 中。当我按下电话上的后退按钮时,它会将我带到正确的 Activity 1,但如果我再次按下 Activity 1 按钮,我输入到 EditText 中的任何文本都将消失。我确定这是因为每次按下按钮时我都会开始一个新的 Intent,我认为我需要使用 Flags 但我不确定。下面是我的基本 MainActivity1 和 MainActivity2,没有我尝试过但不起作用的代码。

**编辑:退出应用程序后,所有保存的数据都需要删除。

主要 Activity 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;
}

主要 Activity 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();
}
}

关于android - 点击后退按钮时将数据保存在编辑文本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18724882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com