Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android主详细信息流-仅在平板电脑上选择列表中的第一项_Android_Listview_Orientation_Tablet - Fatal编程技术网

Android主详细信息流-仅在平板电脑上选择列表中的第一项

Android主详细信息流-仅在平板电脑上选择列表中的第一项,android,listview,orientation,tablet,Android,Listview,Orientation,Tablet,我根据Android Studio的“新建项目…”对话框中选择的默认“主细节流”模板创建了一个新应用程序。然后我调整了应用程序以适应我的需求和数据。在手持设备和平板电脑上的效果就像一个符咒 我唯一想实现的是自动选择列表中的第一项,显示详细视图并将列表项设置为选中 在“ItemListFragment”中,我在覆盖的“onStart()”方法中调用了“onListItemClick(…)”方法。这有以下行为: 旋转设备时,列表中的第一项被选中(而不是先前选中的) 列表项未被标记为列表中的选定项

我根据Android Studio的“新建项目…”对话框中选择的默认“主细节流”模板创建了一个新应用程序。然后我调整了应用程序以适应我的需求和数据。在手持设备和平板电脑上的效果就像一个符咒

我唯一想实现的是自动选择列表中的第一项,显示详细视图并将列表项设置为选中

在“ItemListFragment”中,我在覆盖的“onStart()”方法中调用了“onListItemClick(…)”方法。这有以下行为:

  • 旋转设备时,列表中的第一项被选中(而不是先前选中的)
  • 列表项未被标记为列表中的选定项
有人能告诉我如何实现这一目标的正确方向吗。因为我只希望在“平板电脑模式”中出现这种行为,我想我必须将其放入ItemListActivity中

谢谢

编辑:这是我的“ItemListActivity”的“onCreate”方法


您可以通过删除
ItemListFragment
onStart(…)
中的
onListItemClick(…)
调用来解决此问题,并将下面的代码段添加到
setActivateOnItemClick(…)
的末尾:

另外,如果这一行代码不在
onListItemClick(…)
ItemListFragment
中,请添加这一行代码:

    mActivatedPosition = position;
请检查我的GH repo上昨天提交的文件
ChapterListFragment
中的差异,以获得我的解决方案的更多上下文-


希望这对您有所帮助

我们的想法是,只有在您知道自己正在使用平板电脑时,才可以在主要活动中这样做。我不明白你为什么要调用
onListitemClick()
而不是
ListView
上的
setItemChecked()
。听起来很奇怪。但是我该怎么做呢?在我的“ItemListActivity”中,我使用了一个显示“ItemListFragment”的布局。片段包含ListView,而不是活动。如何从我的活动中访问片段中的ListView?基本主详细信息示例在平板电脑方向(activity
onCreate()
method)中完全按照您的要求执行操作,当第二个容器存在时,活动将使用列表查找该片段,并对其调用调用
setItemChecked()的方法
。在查看了“ItemListFragment”中的“onCreate”方法后,我仍然不清楚您的意思(参见我编辑的帖子)。@Klaus-您找到了这个问题的答案吗?我希望能解决同样的问题。我调整了我的应用程序,您的解决方案也能正常工作。谢谢分享。很高兴知道这一点,@Klaus
    // If on dual-pane view, pre-select the first item from the chapter list
    if (activateOnItemClick && mActivatedPosition == ListView.INVALID_POSITION) {
        getListView().performItemClick(getListView(), 0, getListView().getItemIdAtPosition(0));
    }
    mActivatedPosition = position;