Android listView performItemClick调用单击侦听器,但在更改方向后不会更改突出显示的行

时间:2012-09-21 22:45:01

标签: android listview

listView.performItemClick(listView, 0, listView.getItemIdAtPosition(0));

我试过这个并且在大多数情况下都适用。有一种奇怪的情况:当您旋转设备时,我会拨打performClick来拨打电话。位置为零,调用onClickListener并调用位置零的DetailView。但如果最后激活的项目是位置3,则位置3仍然会继续突出显示。这在我启动活动并设置要激活的第一行时有效,但在方向更改后却没有。

情况:我在平板电脑模式的活动A,右站点详细信息视图,左站点列表视图。

第1步:我触摸3.列表项 - >该行突出显示,并显示详细信息视图。

第2步:我旋转平板电脑,我不保存任何东西,我没有抓住方向变化,nada-> 3.项目继续突出显示。

下一步:我尝试在listView.performItemClick方法 - >中调用onActivityCreated来定位cero效果:当活动首次启动时,第一行突出显示并显示详细信息视图,当方向更改时,再次调用onActivityCreated(),也执行performItemClick,调用onClickListener并更新详细信息视图,但列表项目编号仍为3继续突出显示。

1 个答案:

答案 0 :(得分:0)

这只是因为只要 Orientation 更改,视图就会刷新。如果您在特定方向上单击了listItem,那么它会根据您的需要高亮显示。 But after change the orientation the view is refreshed 如果您想保存状态,请查看此处:

https://stackoverflow.com/a/151940/1395259