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

我试过这个,它在大多数情况下都有效。有一种奇怪的情况:当您旋转设备时,我调用 aperformClick到例如位置零,onClickListener调用 并且调用DetailView位置零的 。但如果最后激活的项目是位置 3,则位置 3 仍会继续突出显示。这在我开始活动并将第一行设置为激活时有效,但在方向更改后无效。

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

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

第 2 步:我旋转平板电脑,我没有保存任何内容,我没有捕捉到方向变化,nada-> 3. 项目继续突出显示。

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

4

1 回答 1

0

发生这种情况只是因为每当Orientation更改时视图都会刷新。如果您单击特定方向上的 listItem,则它会根据需要突出显示。But after change the orientation the view is refreshed 如果您想保存状态,请查看此处:

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

于 2012-09-22T03:52:51.057 回答