在我的项目中,我有一个编辑文本和一个按钮。 当项目加载并按下按钮时, 按钮的文本更改为编辑文本的值。 但是当我按下后退按钮时,按钮文本的更改不会持续。
我已经包含了可以更好地描述我的问题的快照。
我基本上希望按钮文本更改保持不变。
请帮忙。
答案 0 :(得分:1)
文本在重新打开应用时不会显示,因为它是临时存储的,当您关闭应用时,它会被销毁。要保留文本,您可以将其存储在共享首选项或文件中,并在应用程序启动时从该源加载按钮的文本,如果源不存在(第一次打开应用程序时),则将默认文本放在按钮上。
答案 1 :(得分:1)
在您的活动onCreate()方法中,您可以添加以下代码:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String btnText = preferences.getString("btnText", "");
if(!btnText.equalsIgnoreCase(""))
{
yourButton.setText(btnText);
}
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("btnText",yourTextEdit.getText().toString());
editor.apply();
....your code
}
});
在布局xml文件中,设置按钮默认文本。 android:text="@string/yourtext"
答案 2 :(得分:0)
从编辑文本获取文本后第一次按此按钮时,请使用以下代码保存要在共享首选项中按钮上设置的编辑文本文本: 在按钮点击方法:
EditText et = (EditText) findViewById(....);
String text = et.getTex().toString();
然后你把它设置在按钮上,所以..
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString("buttonText", text);
editor.commit();
然后当您在onCreate方法中重新启动应用程序时,请使用以下代码:
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String value= prefs.getString("buttonText", "");
button.setText(value); //whatever you button is