1

案例:我有一个带有 3 个片段(在 MainActivity 中)的 viewpager,片段 #3 有一个打开活动 Act 的按钮。

Act 有一个按钮,按下时我想关闭 Act 并在 MainActivity 中调用 viewPager.setCurrentItem(1)。

我怎样才能做到这一点?我试图覆盖 #3 的 onResume() 方法并调用 main.doSomething(),它可以工作,但是每次打开 #3 时都会调用 onResume()!

谢谢

4

1 回答 1

0

最好在片段 #3 中对按钮进行编码以使用 startActivityForResult() 而不仅仅是启动意图。

在 Fragment 3 的按钮中执行此操作

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

在 Act Activity 的按钮中

//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 回答