在我的应用中,我的活动包含两个片段。
第一个片段包含ViewPager,其中包含一些片段(viewpager片段的第一个片段包含ListView)。第二个片段是简单的设置片段。例如,我检查了ListView上的第二个元素,单击设置,我的第二个片段从活动打开。我点击后退按钮,然后回到我的ListView,然后我打电话:
listView.setItemChecked(0, true);
listView.setSelection(0);
但是这不起作用,第二个元素仍然被检查...... 我从ViewPager转到下面的第二个片段:
getSupportFragmentManager().beginTransaction()
.replace(R.id.slpdActivityLayout, fragment).addToBackStack(null).commit();
为什么我的选择仅在按下后退按钮时不起作用?
答案 0 :(得分:0)
这是关于您的片段的生命周期,如-> here <-,您无法在onCreateView
中进行UI更新。因此,请将代码置于onStart
或更好onResume
。
删除:
public void onCreateView() {
listView.setItemChecked(0, true);
listView.setSelection(0);
}
添加:
public void onResume() {
listView.setItemChecked(0, true);
listView.setSelection(0);
}