Android Fragments默认选择ListView中的第一项

时间:2015-07-06 06:58:48

标签: android listview android-fragments

在Android Studio中,我选择了一个基于主/详细信息流的新项目。该项目应该按原样运作。现在我想扩展它。截至目前,只有单击列表中的项目时,才会显示详细信息片段中项目的内容。我希望应用程序启动时自动选择顶级项目。我以为我把ItemListFragment只是一个方法调用

@Override
public void onStart()
{
    mCallbacks.onItemSelected(DummyContent.ITEMS.get(0).id);
}

初始化所有对象后,在生命周期中模拟点击。那失败了。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:0)

您可以通过以下代码选择第一个元素

yourListView.setSelection(0);
yourListView.getSelectedView().setSelected(true);

希望这会有所帮助。队友的欢呼声! :)

答案 1 :(得分:0)

您可以使用SharedPreferences。您可以在创建列表视图时将列表视图的第一项保存为首选项,然后稍后可以使用它。

答案 2 :(得分:-1)

您是否在onResume()中尝试过?我总是将它放在onResume()

更新#1

您可以尝试我的方式来实施选择。通常我不会使用列表视图的选择。

1.在您的数据模型中,创建一个名为" selection"的布尔字段。

2.将数据应用到适配器时,设置第一个数据"选择"为真。

3.在你的适配器getView回调中,尝试处理你的数据"选择"如:

if (!dummyData.selection){
    do something when not select....
}else{
    do something when selected...
}

更新#2 将此代码放在ItemListFragment

@Override
public void onResume() {
    super.onResume();
    mCallbacks.onItemSelected(DummyContent.ITEMS.get(0).id);
}