Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 还记得android中的选中选项卡吗_Java_Android - Fatal编程技术网

Java 还记得android中的选中选项卡吗

Java 还记得android中的选中选项卡吗,java,android,Java,Android,我有一个活动A,包含一个包含两个选项卡的表格布局:位置1的选项卡1和位置2的选项卡2。 任一选项卡都包含可单击项目的回收器视图。单击开始活动B。 如果a选择tab1并单击其中一个项目,则活动B开始,使用“后退”按钮,我返回到活动a,其中选择了tab1。 但是,如果我对tab2也这样做,那么每当我返回活动A时,tab1仍然是选中的一个。 我如何才能记住所选选项卡,以便在我离开活动B时,显示以前选择的选项卡,而不是始终显示选项卡1?确保以正确的方式实现向上导航: <application ..

我有一个活动A,包含一个包含两个选项卡的表格布局:位置1的选项卡1和位置2的选项卡2。
任一选项卡都包含可单击项目的回收器视图。单击开始活动B。
如果a选择tab1并单击其中一个项目,则活动B开始,使用“后退”按钮,我返回到活动a,其中选择了tab1。 但是,如果我对tab2也这样做,那么每当我返回活动A时,tab1仍然是选中的一个。

我如何才能记住所选选项卡,以便在我离开活动B时,显示以前选择的选项卡,而不是始终显示选项卡1?

确保以正确的方式实现向上导航:

<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>

来源:

确保以正确的方式实现向上导航:

<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>
来源:

设置

android:launchMode=singleTop
因为启动活动为我解决了问题。无需保存任何选项卡位置。

设置

android:launchMode=singleTop

因为启动活动为我解决了问题。不需要保存任何制表符位置。

是的,这是一篇旧帖子,对此我深表歉意,但这里的答案很糟糕,所以通常的做法是保存并恢复实例状态,所以创建一个字符串,它只是用作键,我的字符串称为CURRENT_FRAGMENT,然后在保存实例状态下

@Override
   public void onSaveInstanceState(@NonNull Bundle outState) {
       super.onSaveInstanceState(outState);
       outState.putInt(CURRENT_FRAGMENT, 
       requestTabLayout.getSelectedTabPosition());
 }
然后,为了恢复它,您可以在恢复实例状态时重写,也可以在onCreate或onStart中检查savedInstanceState

if (savedInstanceState  != null){
    requestTabLayout.getTabAt(savedInstanceState.getInt(CURRENT_FRAGMENT))
    .select();
} 

是的,这是一篇旧帖子,对此我深表歉意,但这里的答案很糟糕,所以通常的做法是保存和恢复实例状态,所以创建一个字符串,它只是作为一个键,我的称为CURRENT_FRAGMENT,然后在保存实例状态下

@Override
   public void onSaveInstanceState(@NonNull Bundle outState) {
       super.onSaveInstanceState(outState);
       outState.putInt(CURRENT_FRAGMENT, 
       requestTabLayout.getSelectedTabPosition());
 }
然后,为了恢复它,您可以在恢复实例状态时重写,也可以在onCreate或onStart中检查savedInstanceState

if (savedInstanceState  != null){
    requestTabLayout.getTabAt(savedInstanceState.getInt(CURRENT_FRAGMENT))
    .select();
} 

可能会覆盖
onStop()
以记录当前选定的选项卡,然后在
onResue()
中设置该选项卡可能会起作用?请参见此操作,但使用
onPause()
onResume()
来代替。将您的位置保存在
onPause()
中的
sharedreferences
中,并在
onResume()中恢复适当的选项卡
。为活动A设置android:launchMode=singleTop可以解决问题。无需保存任何位置。可以覆盖
onStop()
以记录当前选定的选项卡,然后在
onResue()
中设置该选项卡可能会起作用?请参见此操作,但请改用
onPause()
onResume()
将您的位置保存在
onPause()中
SharedReferences
中,并在
onResume()中恢复适当的选项卡。
为活动A设置android:launchMode=singleTop可解决此问题。不需要保存任何位置,他/她也需要考虑方向改变。方向更改不会保留选项卡布局的状态selection@Matias使用NavUtils.navigateUpFromSameTask()的Elorriaga无效。第一个选项卡仍然是选择的,他/她需要考虑方向改变。方向更改不会保留选项卡布局的状态selection@Matias使用NavUtils.navigateUpFromSameTask()的Elorriaga无效。第一个选项卡仍然是选定的选项卡。