[英]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.