Android ListView选择不会更改
在我的应用程序中,我的活动包含两个片段 第一个片段包含ViewPager,其中包含一些片段(ViewPager片段的第一个片段包含ListView)。第二个片段是简单设置片段。例如,我检查了ListView上的第二个元素,单击设置,活动中的第二个片段打开。我单击“上一步”按钮,返回我的列表视图,然后我调用:Android ListView选择不会更改,android,android-fragments,android-listview,Android,Android Fragments,Android Listview,在我的应用程序中,我的活动包含两个片段 第一个片段包含ViewPager,其中包含一些片段(ViewPager片段的第一个片段包含ListView)。第二个片段是简单设置片段。例如,我检查了ListView上的第二个元素,单击设置,活动中的第二个片段打开。我单击“上一步”按钮,返回我的列表视图,然后我调用: listView.setItemChecked(0, true); listView.setSelection(0); 但这不起作用,第二个元素仍处于检查状态。。。 我以下面的方式从Vie
listView.setItemChecked(0, true);
listView.setSelection(0);
但这不起作用,第二个元素仍处于检查状态。。。 我以下面的方式从ViewPager转到第二个片段:
getSupportFragmentManager().beginTransaction()
.replace(R.id.slpdActivityLayout, fragment).addToBackStack(null).commit();
为什么只有当我按下后退按钮时,我的选择才起作用?这是关于你的片段的生命周期的,如所见->这里你打开了singleselection吗?“第二个元素仍然被选中”-第一个元素也被选中了吗?如果是:则只需取消选中第二个元素(循环中的所有其他元素)如果否:可能您需要刷新UIYes,如下图所示
AbsListView。选择\u MODE\u SINGLE
no,只检查第二个元素然后检查,如果必须更新视图-可能使用isDirty()
并在调用getSupportFragmentManager().beginTransaction().replace(R.id.slpdActivityLayout,secondFragment.addToBackStack(null.commit())时以编程方式检查第二个元素是否已被选中带有listView的活动片段中的代码>未被销毁?我发现了一个被销毁的东西…您可以通过调试listView中fragmentfragment的onDestroy
或onDestroyView
方法轻松检查它。。。那么为什么这段代码在“onCreateView”方法中不起作用呢?是的,这很有意义。很抱歉正确的答案太明显了。更改了我的答案。那么为什么此代码在“onCreateView”方法中不起作用?
public void onCreateView() {
listView.setItemChecked(0, true);
listView.setSelection(0);
}
public void onResume() {
listView.setItemChecked(0, true);
listView.setSelection(0);
}