8

戻るボタンを押した後にアクティビティを更新する方法を一生理解できません。私は現在、B に移動するインテントを起動するアクティビティ A を持っています。また、アクト B の実行中にバックを押すと、アクト A に戻りたいのですが、それ自体をリフレッシュします。このインテントを使用して、現在のアクティビティを更新できます。

Intent refresh = new Intent(this, Favorites.class);
    startActivity(refresh);
    this.finish();

しかし、onResume() 関数を適切に使用して、アクト A に戻った後にアクト A をリフレッシュする方法がわかりません。

4

3 に答える 3

13

ActivityAから戻ってきたときの特別な動作が必要な場合は、代わりにActivityB次を使用する必要があります。startActivityForResult(Intent intent, int requestCode)startActivity(Intent intent)

 startActivityForResult(new Intent(this, ActivityB.class), REQUEST_CODE); 

このようにして、をオーバーロードすることActivityBで の終了を検出できます。ActivityAonActivityResult(int requestCode, int resultCode, Intent intent)

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    if (requestCode == REQUEST_CODE) {
        doRefresh(); // your "refresh" code
    }
}

ActivityBこれは、戻るボタンを押して終了しても機能します。その場合、デフォルトで にresultCodeなります。RESULT_CANCELLED

于 2011-07-27T20:24:53.390 に答える
3

からstartActivityForResult(intent, requestCode); 開始するために使用しますActivity BActivity A

次にActivity AオーバーライドでonActivityResult(int requestCode, int resultCode, Intent data)

そこでリフレッシュできますActivity A

于 2011-07-27T20:22:30.257 に答える
1

onResume()アクティビティの UI を更新するコードをメソッドに配置する必要があります。たぶん、さらにコードを投稿するか、正確に何を更新しようとしているのかを説明する必要があります。

于 2011-07-27T20:20:15.070 に答える