案例:我有一个带有 3 个片段(在 MainActivity 中)的 viewpager,片段 #3 有一个打开活动 Act 的按钮。
Act 有一个按钮,按下时我想关闭 Act 并在 MainActivity 中调用 viewPager.setCurrentItem(1)。
我怎样才能做到这一点?我试图覆盖 #3 的 onResume() 方法并调用 main.doSomething(),它可以工作,但是每次打开 #3 时都会调用 onResume()!
谢谢
案例:我有一个带有 3 个片段(在 MainActivity 中)的 viewpager,片段 #3 有一个打开活动 Act 的按钮。
Act 有一个按钮,按下时我想关闭 Act 并在 MainActivity 中调用 viewPager.setCurrentItem(1)。
我怎样才能做到这一点?我试图覆盖 #3 的 onResume() 方法并调用 main.doSomething(),它可以工作,但是每次打开 #3 时都会调用 onResume()!
谢谢
最好在片段 #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
}
}
}