簡體   English   中英

記住在Android中選擇的標簽

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

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