我已经找到了这里的答案 - How to maintain the previous state of an activity - 但我正在寻找一个使用OnClickListener代码的解决方案。我目前用于调用活动的代码是:
NextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(GroupRegistrationStep2.this, GroupRegistrationStep3.class));
}
});
这就是我正在做的事情。用户通过四个不同的屏幕进行输入组数据,他们可以在输入时返回或前进。我使用onBackPressed()来处理返回,但是当用户在屏幕上输入一些数据(比如屏幕2)时,返回到屏幕1来检查某些内容,然后点击Next返回到2,任何数据他们进入田野已经走了。
我想要一种调用活动的方法,但要保留在editText字段中输入的数据/在微调器等中选择的数据。
有人可以帮忙吗?我以前做了很多VB.net编码,但对Java和Android Studio来说是新手,所以我们会很感激傻瓜的解决方案。如果有人可以让我知道我的代码应该是什么来使这项工作,以及我需要做的任何其他更改,那将非常感激。
答案 0 :(得分:0)
我认为您正在尝试创建多页面表单。不要为不同的表单启动新活动,而是尝试使用包含多个片段的单个活动并将其放在viewpager中。这样,您可以放置“下一步”和“后退”按钮,在viewpager'片段之间导航,并在活动中保留值。
如果您真的想使用单独的活动,可以临时将键值对保存到SharedPreferences。您可以使用下面的代码段来实现此目的。
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("FieldName", "Put the value of the field here");
editor.commit();
然后您可以通过以下方式检索值:
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
String value = sharedPref.getString("FieldName", "");
// Now place this value to the activity's field
如果您已成功填写表格,请务必清除必要的偏好。