0

我的应用中有 2 个视图。表单输入和用于查看表单数据并确认的屏幕。用户在编辑文本字段中输入表单提交屏幕上的数据。当用户点击提交时,他们会看到他们输入的数据以及一个“返回”和“确认”按钮。我想要这样,如果用户按下,他们会返回到表单输入屏幕,他们输入的数据应该仍然在 editText 字段中。

目前,我正在使用 onClickListener 指向表单提交屏幕,但表单都是空白的。我如何将数据保存在其中?

这是 onClickListener:

bBack.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Intent j = new Intent(FormConfirm.this, FormCreate.class);
            startActivity(j);
        }
    });
4

3 回答 3

2

我不知道如何在 android 应用程序上编写代码,但我想,为什么不将它们存储到变量标志中并在编辑文本字段中调用它们?例如,如果您已经填写了表单并单击提交,您可以先在变量标志上创建一个存储数据的功能,并在表单提交中显示数据,因此当您单击返回按钮时,您可以调用您存储在变量上的值标记为edittext。

希望我的回答能给你一些启发

于 2012-10-15T17:52:20.183 回答
1

有了灵感并找到了一个可能不一定正确但有效的解决方法:) 只是将活动的 Java 代码更改为以下内容:

bBack.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            finish();
        }
    });
于 2012-10-15T17:54:44.137 回答
1

如前所述,您应该以某种方式保存这些值,例如使用 SharedPreferences。

例如,当您从Input-form Activity 转到Submit-form Activity 时:

bSubmit.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Intent j = new Intent(FormCreate.this, FormSubmit.class);
        saveInput();
        startActivity(j);
    }
});

该方法saveInput()可能类似于:

private void saveInput() {
    EditText input = (EditText) findViewById(R.id.someId);
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    preferences.edit().putString("input",input.getText().toString()).commit();   
}

然后,当你按下后退时,后退动作可能只是这样的:

bBack.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        FormConfirm.this.finish();
    }
});

这将导致当前活动退出,您之前的活动将可见。如果您想在Input-form Activity 启动时显示最后保存的输入,您可以简单地执行以下操作:

private void loadInput(){
    EditText input = (EditText) findViewById(R.id.someId);
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    String savedText = getString("input", "default input text");
    input.setText(savedText);   
}

并在-form Activity的onCreate-method 中 调用该方法。Input

于 2012-10-15T17:56:48.420 回答