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