5

ナビゲートできるアクティビティAがありますA->B->C->D

ユーザーがこの Activity Dボタンを押すと、に移動するボタンがあります Activity A。ここで、ユーザーがここで値を更新できる新しいインスタンスを作成します。

私はアクティビティを終了します。ユーザーが押すと Activity D、に移動します。Activity DBack Button
D->C->B->A
Activity A

で更新された値を表示する必要がありActivity Aます。「Activity A」で値を更新するにはどうすればよいですか?

4

7 に答える 7

4

戻るボタンのクリック時にデータを保持するにはSharedPreferenceを使用するか、 Static variableを使用する必要があると思います。

// ------------------ データを保存するには ------------------

SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putInt("key", countValue);
                editor.commit();

// --------------------- データを取得するには ------------------

if ((keyCode == KeyEvent.KEYCODE_BACK)) {
    Intent home=new Intent(PersentActivity.this,DesiredActivity.class);

                 sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);   
          int countValue = sharedPreferences.getInt("key", 0);

                startActivity(home);

                return true;
            }
于 2012-10-05T07:07:10.480 に答える
4

たくさんのstartActivityForResult()s を用意して、基本的にそれらを D から A に連鎖させたいと思うでしょう。

ここを参照してください: Android のアクティビティ間で値を渡すにはどうすればよいですか?

SharedPreferencesまたは、元のアクティビティに戻ったら、値を として保存し、後で検索することもできます。

于 2012-10-05T06:49:27.573 に答える
2

Shared Preferencesデータの保存に使用します。したがって、すべてのアクティビティでデータを取得します。

于 2012-10-05T06:50:48.640 に答える
1

更新中にデータを保存していない場合は、それらをそれ自体Activity Aの静的変数に保存し、 .Activity AonResume()

データベースがある場合は、データをデータベースActivity Aから に保存しますonResume()

于 2012-10-05T07:42:56.153 に答える
0

アクティビティのライフサイクルとデータの管理について詳しくは、アクティビティをご覧ください。

質問については、アクティビティA内のonResumeメソッドからデータを更新する必要があります。

@Override
public void onResume(){
    //Update your data here
}

それらの間でデータを渡す方法が懸念される場合は、共有設定を使用する必要があります。これは、非常に多くのアクティビティでstartActivityForResultをロードすることは実際には推奨されないためです。また、そのジェラキアが本当に必要ですか?ユーザーがデータを更新したらすぐに、ActivityAを起動して、データを直接渡す方が簡単です。

于 2012-10-05T06:53:11.317 に答える
0

このスニペットを D アクティビティに含めます。

@Override
 public void onBackPressed(){
     aMethodToUpdateYourActivityA();
    }
于 2012-10-05T06:49:16.100 に答える
0

これは、次の 2 つの方法で実行できます。

  1. 共有設定を使用して更新された値を保存し、アクティビティ A の onResume() で同じ共有設定から読み取り、値を更新します。

  2. startActivityForResult を使用してアクティビティを起動し、インテント オブジェクトを使用して値を収集し、setResult を使用して前のアクティビティに戻します。

于 2012-10-05T06:57:02.367 に答える