【发布时间】:2014-07-17 08:46:29
【问题描述】:
我创建了一个新应用,依赖于默认的“Master Detail Flow”模板,该模板是在 Android Studio 的“New Project...”对话框中选择的。然后我调整了应用程序以适应我的需求和数据。在手持设备和平板电脑上的作用就像一个魅力。
我唯一想要实现的是自动选择列表中的第一项,显示详细视图并将列表项设置为选中。
在“ItemListFragment”中,我在覆盖的“onStart()”方法中调用了“onListItemClick(...)”方法。这有以下行为:
- 旋转设备时,列表中的第一项会被选中(不是之前选择的一项)
- 列表项未在列表中标记为选中
有人可以为我指出如何实现这一目标的正确方向。因为我只希望在“平板电脑模式”中出现这种行为,所以我想我必须将它放入 ItemListActivity 中?
谢谢
编辑:这是我的“ItemListActivity”的“onCreate”方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item_list);
if (findViewById(R.id.item_detail_container) != null) {
mTwoPane = true;
((ItemListFragment) getFragmentManager()
.findFragmentById(R.id.item_list))
.setActivateOnItemClick(true);
}
}
【问题讨论】:
-
我们的想法是仅在您知道自己处于平板电脑方向时才在主要活动中执行此操作。我不明白你为什么在
ListView上打电话给onListitemClick()而不是setItemChecked()。 -
听起来不错。但是我该怎么做呢?在我的“ItemListActivity”中,我使用了一个显示“ItemListFragment”的布局。该片段包含 ListView,而不是活动。如何从我的活动中访问片段中的 ListView?
-
基本的主从示例完全按照您的意愿在平板电脑方向(活动
onCreate()方法)中,当第二个容器存在时,活动通过列表找到该片段并调用调用setItemChecked()的方法。 -
查看“ItemListFragment”中的“onCreate”方法后,我仍然不清楚您的意思(请参阅我编辑的帖子)。
-
@Klaus - 你找到答案了吗?我正在寻求解决同样的问题
标签: android listview orientation tablet