0

アプリに 2 つのビューがあります。フォーム入力とフォームデータを確認して確認する画面。ユーザーは、フォーム送信画面の edittext フィールドにデータを入力します。ユーザーが送信をクリックすると、入力したデータと「戻る」および「確認」ボタンが表示されます。ユーザーが押し戻すと、フォーム入力画面に戻り、入力したデータが 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

前述のように、SharedPreferences を使用するなど、何らかの方法で値を保存する必要があります。

例として、Input-form アクティビティから -form アクティビティに移動する場合Submit:

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();
    }
});

これにより、現在のアクティビティが終了し、以前のアクティビティが表示されます。-form アクティビティの開始時に最後に保存された入力を表示したい場合Inputは、次のようにするだけです。

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 アクティビティのonCreate-method で そのメソッドを呼び出します。Input

于 2012-10-15T17:56:48.420 に答える
1

インスピレーションを得て、必ずしも正しいとは限らない回避策を見つけましたが、うまくいきました:)アクティビティのJavaコードを次のように変更しただけです:

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