基本上,我目前正试图在屏幕上显示一些按钮,当它们被点击时,它会使用户使用EditText字段和完成按钮进行不同的活动。输入并完成数据后,它会返回并更改按钮文本的名称。我使用此链接来帮助How to pass EditText to another activity?。我有的问题是,一旦我点击一个不同的按钮并输入该信息并返回它已忘记以前的按钮数据。我有一个字符串,所以只有点击的按钮被编辑,所以我认为它不存储数据。我花了很多年时间尝试不同的解决方案来保存状态,但似乎没有任何工作。
我对Android很陌生,所以我很清楚解决方案可能非常简单,而且我一直在实施它。
带按钮的Activity代码如下:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.edit);
setupViews();
setupListeners();
mIntentString = savedInstanceState != null ?
savedInstanceState.getString("myKey"):null;
if(mIntentString == null){
Bundle extras = getIntent().getExtras();
mIntentString = extras != null ? extras.getString("myKey") : "Choose name";
}
if(ActivityController.button == "1"){
button1.setText(mIntentString);
Log.e(button, "button1 being checked");
}
...
@Override
public void onClick(View view){
if (view == button1) {
Intent i = new Intent();
i.setClass(ActivityEdit.this, ActivityEnterInfo.class);
startActivity(i);
}}
...
public void refreshButtons()
{
if(ActivityController.button == "1"){
mIntentString = button1.getText().toString();
Intent intent = new Intent();
intent.putExtra("returnKey",button1.getText().toString());
setResult(RESULT_OK,intent);
}
我希望这一切都有道理,我真的打了一个砖墙,需要帮助
答案 0 :(得分:0)
根据我的理解,你想要的是在内部保存按钮的状态,并在你回来时恢复它们。
您应该在按钮活动中覆盖onStart()
或onPause()
,将按钮数据保存在私人成员中,然后覆盖onStop()
或onResume()
并使用它来恢复您的数据
答案 1 :(得分:0)
我遇到此问题的方法是使用共享偏好。在下一个屏幕中完成任务时,如果要在按钮上显示文本,请在共享首选项中保存按钮文本,请检查sharedPrefrenes中是否存在数据。 并相应地显示文字。
〜Rollno1