屏幕旋转后,setItemChecked无法处理ListFragment

时间:2013-11-03 22:24:37

标签: android listview rotation fragment highlighting

我在屏幕旋转后突出显示片段内ListView上的项目时遇到问题。由于我的代码受到了ApiDemos中FragmentLayout示例的启发,我已经对它进行了测试,同样的问题如上所述:

以纵向模式启动应用程序,选择一个项目,然后以横向模式旋转设备。使用显示正确文本的详细信息片段正确突出显示先前选择的项目。切换回纵向模式,然后选择另一个项目。现在,当在横向模式中切换时,“第一个”选定项目仍然会突出显示,细节片段会显示正确的文本,即“第二个”所选项目之一。

为什么突出显示错误的项目?在列表片段中有一个显式调用getListView.setItemChecked(second_item_index,true)但它保持“第一个”项突出显示。我曾尝试在调用setItemChecked之前添加setNotifyOnChange和/或将所有项设置为false,但这不会改变任何内容。

这是一个错误还是缺少什​​么?

但是,有一种解决方法,我只是实现了onStart方法来设置项目:

@Override
public void onStart() {
    super.onStart();
    if (mDualPane) {
        getListView().setItemChecked(mCurCheckPosition, true);
    }
}

我不确定是否应该使用onStart在UI上工作,但它可以正常工作。

另一个想法?

0 个答案:

没有答案
相关问题