[英]Remember selected tab in android
我有一個活動A,其中包含一個包含2個標簽的標簽布局:位置1處的tab1和位置2處的tab2。
每個選項卡均包含帶有可單擊項的回收者視圖。 單擊開始活動B。
如果選擇一個tab1並單擊其一項,則活動B開始,並使用“后退”按鈕返回到選擇了tab1的活動A。 但是,如果我對tab2進行相同操作,那么每當我回到活動A時,tab1仍然是選定的選項卡。
我如何記住所選的選項卡,以便每當我離開活動B時,都會顯示以前選擇的選項卡,而並不總是顯示tab1?
確保以正確的方式實現導航:
<application ... >
...
<!-- The main/home activity (it has no parent activity) -->
<activity
android:name="com.example.myfirstapp.MainActivity" ...>
...
</activity>
<!-- A child of the main activity -->
<activity
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
@Override
public void onCreate(Bundle savedInstanceState) {
...
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
資料來源: https : //developer.android.com/training/implementing-navigation/ancestral.html
設置
android:launchMode=singleTop
因為開始活動為我解決了問題。 無需保存任何標簽位置。
是的,這是我對此表示歉意的一則舊文章,但是這里的答案令人恐懼,因此執行此操作的方法通常是保存和還原實例狀態,因此創建一個僅用作鍵的字符串,我的這個字符串稱為CURRENT_FRAGMENT,然后在您的保存實例狀態
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(CURRENT_FRAGMENT,
requestTabLayout.getSelectedTabPosition());
}
然后要還原它,您可以在“還原實例狀態”上覆蓋,也可以在onCreate或onStart中檢查類似的“ savevedInstanceState”
if (savedInstanceState != null){
requestTabLayout.getTabAt(savedInstanceState.getInt(CURRENT_FRAGMENT))
.select();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.