2017-06-02 8 views
0

ここに答えがあるように見えました - How to maintain the previous state of an activity - しかし、私はOnClickListenerコードを使用して動作するソリューションを探しています。アクティビティを呼び出すために現在使用しているコードは次のとおりです。前のアクティビティに戻る:editTextフィールドの内容を維持する方法

NextButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
    startActivity(new Intent(GroupRegistrationStep2.this, GroupRegistrationStep3.class)); 

     } 

    }); 

ここは私がやっていることです。ユーザーは4つの異なる画面を使用してグループデータを入力し、グループデータを入力するときに前後に移動できます。私はonBackPressed()を使用して戻ることに対処していますが、ユーザーが画面に何らかのデータを入力すると(画面2)、画面1に戻って何かをチェックし、次にNextを押して2に戻ると、フィールドへの移動はなくなりました。私は活動を呼び出す方法を好むが、それはスピナーで選択のEditTextフィールドに入力されたデータを/保つ必要があるだろう

など

誰でも助けることができますか?私は過去に多くのVB.netコーディングを行ってきましたが、JavaやAndroid Studioを初めて使用しているので、ダミーの解決策には感謝しています。誰かが、私のコードがこの仕事をするために必要なものと、私が作る必要があるその他の変更を私に知らせることができれば、それは非常に高く評価されるでしょう。

答えて

0

私はあなたが複数のページングされたフォームを作成しようとしていると思います。異なるフォームの新しいアクティビティを起動する代わりに、複数のフラグメントを持つ単一のアクティビティを使用して、ビューページに配置してみてください。こうすることで、ビューページャのフラグメント間を移動してアクティビティ内の値を保持するために、「次へ」および「戻る」ボタンを配置することができます。

別々のアクティビティで作業したい場合は、キーと値のペアを一時的にSharedPreferencesに保存できます。以下のコードスニペットを使用してこれを達成できます。フォームを正常に完了した場合、必要な設定をオフにしてください

SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
String value = sharedPref.getString("FieldName", ""); 
// Now place this value to the activity's field 

SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putString("FieldName", "Put the value of the field here"); 
editor.commit(); 

次に、あなたがして値を取得することができます。

+0

ありがとうございました。私はこれを行う方法の一つとしてフラグメントを見ていましたが、すでに多くの画面を構築してコードを設定していました。可能であれば、別々のアクティビティで動作するソリューションを探していました。しかし、私がこれを動作させることができない場合、あなたのソリューションは私の計画Bになります。 – kiwanja

+0

この問題に答えるために私の編集された解決策を見てください。 – noahutz

関連する問題