ListView选择不改变
ListView selection does not change
在我的应用程序中,我有 activity,其中包含两个片段。
The first fragment contains ViewPager which contains a few fragments(the first fragment of viewpager fragments contains ListView)。第二个片段是简单的设置片段。例如,我检查了 ListView 上的第二个元素,单击设置,然后 activity 中的第二个片段打开。我单击后退按钮并返回到我的 ListView,然后调用 :
listView.setItemChecked(0, true);
listView.setSelection(0);
但是这样不行,第二个元素还是checked...
我通过以下方式从 ViewPager 转到第二个片段:
getSupportFragmentManager().beginTransaction()
.replace(R.id.slpdActivityLayout, fragment).addToBackStack(null).commit();
为什么我的选择只有在按下后退按钮时才起作用?
这与您的片段的生命周期有关 -> 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);
}
在我的应用程序中,我有 activity,其中包含两个片段。
The first fragment contains ViewPager which contains a few fragments(the first fragment of viewpager fragments contains ListView)。第二个片段是简单的设置片段。例如,我检查了 ListView 上的第二个元素,单击设置,然后 activity 中的第二个片段打开。我单击后退按钮并返回到我的 ListView,然后调用 :
listView.setItemChecked(0, true);
listView.setSelection(0);
但是这样不行,第二个元素还是checked... 我通过以下方式从 ViewPager 转到第二个片段:
getSupportFragmentManager().beginTransaction()
.replace(R.id.slpdActivityLayout, fragment).addToBackStack(null).commit();
为什么我的选择只有在按下后退按钮时才起作用?
这与您的片段的生命周期有关 -> 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);
}