在我的应用程序的平板电脑布局中,我有三个ListFragments和一个常规的Fragment,我们称它们为Make,Model,Size和Details。首先填充“制造”列表,然后基于“制造”选择,填充“模型”列表;选择模型时,将填充“大小”列表;选择大小后,将显示详细信息。这些事件(列表项选择)均通过onListItemClick处理程序进行处理。
在启动时,我想填充Make列表,选择列表中的第一个Make并使其通过onListItemClick处理程序填充Model列表(依此类推,以便填充所有列表并显示详细信息-这也应该是在任何列表中进行任何选择时的行为-选择下一个列表中的第一项,直到我们显示详细信息为止。请注意,我控制着数据库,并且对于每个Make,总是会有至少一个Model,对于每个Make/Model,至少要有一个Size,对于每个Make/Model/Size,只有一个Detail。
因此,我想选择列表中的第一项并使其触发onListItemClick处理程序。我已经尝试了以下方法(使用适当的边界检查等),但是它不起作用。
getListView().setItemChecked(0, true);
对“开箱即用” ListFragment的唯一更改是将CacheColorHint设置为:
getListView().setCacheColorHint(R.color.GhostWhite);
在styles.xml中将GhostWhite设置为
<color name="GhostWhite">#88FFFFFF</color>
有任何想法吗?
提前致谢。
最佳答案
要选择列表中的第一项,请首先从触摸获得焦点,然后选择第一项,然后触发onclick处理程序
int position = 0;
getListView().requestFocusFromTouch();
getListView().setSelection(position);
getListView().performItemClick(getListView().getAdapter().getView(position, null, null), position, position);