2016-04-15 5 views
0

は、次のシナリオです:状態を再開しているときにEditTextデータを取り込む方法は?ここ

  1. 充填EditTextButtonクリックで活動Bに活動Aからの移行活動A
  2. 内の他のFields Now]ボタンをクリックして上のアクティビティAに活動Bから移動
  3. 人口はEditTextになりました。彼らは

活動Aの現在の状態を保存するにはどのような方法があります(ユーザーが既にそれらを満たしているように)すべての空

  • これらのフィールドは事前に入力する必要があります。私がEditTextに戻って住んでいるように?そうでない場合は、上記の作業をどのように達成できますか?

  • +0

    EditTextに一意のIDを割り当てましたか? 'android:id =" @ + id/foobar "'のように?そうであれば、アクティビティは状態を保存する必要があります。 – Floern

    +0

    "アクティビティBからボタンAのアクティビティAに移動する" - Bからfinish()を呼び出すことができます。EditTextのIDがある場合は、状態は自動的に保存されます。あなたのXML。 –

    +0

    @Floern @Shadab各テキストビューに一意の 'ID'を割り当てました。シナリオは次のとおりです。 ユーザーはUIを介してアクティビティAの必須フィールドに入力し、ActivityB_.intent(Activity1.this).start();を使用してアクティビティbに移動します。コード。ユーザーはActivityA_intent(ActivityB.this).start();を使用してアクティビティーAに戻ります。コード。アクティビティのUIが空白になっています(私が入力したデータは今存在していません:) –

    答えて

    1

    SharedPreferences.Editorを使用して、EditTextデータonPauseを保存し、SharedPreferences onResumeでデータを取得します。それが最も簡単な方法です。

    0

    アクティビティの状態を保存するには、OnSaveInstanceState()メソッドをオーバーライドします。

    @Override 
    protected void onSaveInstanceState(Bundle savedInstanceState) 
    { 
        super.onSaveInstanceState(savedInstanceState); 
        savedInstanceState.putString("key", somevalue); //save your data in key-value pair 
    } 
    

    と使用して値を復元し、

    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) 
    { 
        super.onRestoreInstanceState(savedInstanceState); 
        somevalue = savedInstanceState.getString("key"); 
    } 
    

    あなたは活性を破壊し、それを再度作成している場合は、この方法を使用します。

    +0

    あなたの答えをありがとう。私はあなたが私の質問を誤解したと思う。ユーザは、UIを介して「アクティビティA」の必須フィールドに入力し、「ActivityB_.intent(Activity1.this).start();」コードを使用して「アクティビティb」に移動する。ユーザーは 'ActivityA_intent(ActivityB.this).start();'コードを使って 'Activity A'に戻ります。アクティビティのUIが空白になっています(私が埋め込んだデータは現在ありません:) –

    +1

    アクティビティAの新しいインスタンスを作成していますが、前のアクティビティを削除していませんか?そうでなければ共有の設定を使用する場合は、この回答を使用できます。 – anAmaka

    1

    どのようにbからaに移動していますか?あなたがインテントを使用している場合は、その 'a'アクティビティの新しいインスタンスを開始します。上に挙げたもののように、bアクティビティでフィニッシュを使用してaに戻る必要があります。 bからデータを入力する必要がある場合は、startActivityForResultを使用する必要があります。http://developer.android.com/training/basics/intents/result.html

    関連する問題