向后移动,然后转发到上一个活动:如何维护editText字段的内容

时间:2017-06-02 17:15:12

标签: java android android-activity

我已经找到了这里的答案 - 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来说是新手,所以我们会很感激傻瓜的解决方案。如果有人可以让我知道我的代码应该是什么来使这项工作,以及我需要做的任何其他更改,那将非常感激。

1 个答案:

答案 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

如果您已成功填写表格,请务必清除必要的偏好。