簡體   English   中英

如何從特定活動中選擇打開哪個片段?

[英]How to choose which fragment to open from specific activity?

我的mainActivity包含5個片段,您可以使用選項卡進行切換。 開始處顯示的主選項卡是第三個選項卡(中間的一個)。 我在片段#1中有一個按鈕,用於打開activityTwo。 我應該在activityTwo中的onBackPressed方法中添加什么,以便使其通過選擇的選項卡#1帶回到mainActivity。 我目前有這個,但是它打開mainActivity並顯示主選項卡(#3)

@Override
public void onBackPressed() {
    Intent intent = new Intent(this, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    startActivity(intent);
    ActivityTwo.this.finish();
}

如何使其顯示選項卡#1而不是選項卡#3?

您的第一個活動應仍在活動堆棧中,因此您不應再次調用startActivity 相反,您可以使用setResult將值傳遞回您的第一個活動:

// Inside your second activity
@Override
public void onBackPressed() {
    setResult(RESULT_OK);
    finish();
}

然后,在您的第一個活動中,將startActivity替換為startActivityForResult ,並添加一個請求代碼(您想要的任何整數,只要它是唯一的):

startActivityForResult(intent, YOUR_REQUEST_CODE);

然后覆蓋onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     if (requestCode == YOUR_REQUEST_CODE) {
         if (resultCode == RESULT_OK) {
            // Code to select tab 1 here
            // mTabLayout.getTabAt(0).select();
         }
     }
 }

我認為您正在使用view pager,因此當您從活動2返回時,請使用viewPager.setCurrentItem(page)

其中頁面將是您的標簽頁號(在本例中為2,因為它以0開頭)。 希望這會有所幫助,否則請進一步說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM