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