Android片段默认选择ListView中的第一项

Android片段默认选择ListView中的第一项,android,listview,android-fragments,Android,Listview,Android Fragments,在Android Studio中,我选择了一个基于主/细节流的新项目。该项目按其应有的方式运作。现在我想扩展它。到目前为止,仅当我单击列表中的某个项目时,才会显示细节片段中项目的内容。我希望在应用程序启动时自动选择顶部项目。我想我在ItemListFragment中加入了一个方法调用 @Override public void onStart() { mCallbacks.onItemSelected(DummyContent.ITEMS.get(0).id); } 初始化所有对象后,

在Android Studio中,我选择了一个基于主/细节流的新项目。该项目按其应有的方式运作。现在我想扩展它。到目前为止,仅当我单击列表中的某个项目时,才会显示细节片段中项目的内容。我希望在应用程序启动时自动选择顶部项目。我想我在ItemListFragment中加入了一个方法调用

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

初始化所有对象后,在生命周期中模拟单击。这是失败的。执行此操作的最佳方法是什么?

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

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

希望这有帮助。干杯,伙计!:)

您在onResume()中试用过吗?我总是把它放在简历上

更新#1

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

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

2.向适配器应用数据时,将第一个数据“选择”设置为true

3.在适配器getView回调中,尝试处理数据“选择”,例如:

更新#2 将此代码放入ItemListFragment中

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

您可以使用SharedReferences。创建listview时,您可以将listview的第一项保存为首选项,然后可以在以后使用它。

在onStart getSelectedView中为空。所以这不起作用。在什么生命周期方法中listview已满?onStart在生命周期中已经很晚了。我什么时候调用它?只要在ItemListFragment中设置适配器,就可以执行此操作。适配器在onCreate中设置。我尝试在调用之后执行上面的代码。但这不起作用。你有没有试过onResume中@Ibtehaz Shawon的代码snipet?如果我没有猜错,您正在尝试手动调用listview的onItemSelected回调?创建此主/详细项目时,我使用“官方”Android示例代码。没有自定义适配器。请稍候。让我查一下
@Override
public void onResume() {
    super.onResume();
    mCallbacks.onItemSelected(DummyContent.ITEMS.get(0).id);
}