1

ケース: (MainActivity 内に) 3 つのフラグメントを持つビューページャーがあり、フラグメント #3 にはアクティビティ Act を開くボタンがあります。

Act にはボタンがあり、押されたときに Act を閉じて、MainActivity で viewPager.setCurrentItem(1) を呼び出します。

これどうやってするの?#3 の onResume() メソッドをオーバーライドして main.doSomething() を呼び出そうとしたところ、うまくいきましたが、#3 を開くたびに onResume() が呼び出されました!

ありがとう

4

1 に答える 1

0

単にインテントを開始するのではなく、フラグメント #3 のボタンをコーディングして startActivityForResult() を使用することをお勧めします。

フラグメント3のボタンでこれを行います

public static final int ACTRESULT = 1;
Intent i = new Intent(this,ActActivity.class);
startActivityForResult(i, ACTRESULT );

Act アクティビティのボタン内

//Do whatever you want to do
//and close Activity Act like this
mIntent = getIntent();
setResult(RESULT_OK, mIntent );
finish();

戻る Fragment #3 の Button では、次のメソッドが必要なため、追加されました

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
    case TWEET_SELECT:
        if (resultCode == Activity.RESULT_OK) {
           //Here you can do what you want when the Activity Act has been closed and 
           //the application returns to fragment #3
                         }
            }
}
于 2013-11-08T20:21:22.470 に答える