Android 如何在ListFragment中触发onListItemClick
在我的应用程序的平板电脑布局中,我有三个ListFragments和一个常规片段,让我们称它们为Make、Model、Size和Details。首先填充制作列表,然后根据制作选择填充模型列表;选择模型后,填充尺寸列表;选择尺寸后,将显示详细信息。每个事件列表项选择都通过onListItemClick处理程序处理 启动时,我想填充制造列表,选择列表中的第一个Make,并让它通过onListItemClick处理程序填充模型列表,依此类推,以便填充所有列表并显示详细信息-这也是在任何列表中进行任何选择时的行为-在下一个列表中选择第一个项,直到我们开始显示详细信息。请注意,我可以控制DB,对于每个品牌,总是至少有一个模型,对于每个品牌/模型,至少有一个尺寸,对于每个品牌/模型/尺寸,只有一个细节 因此,我想选择列表中的第一项,并让它触发onListItemClick处理程序。我已经尝试了以下适当的边界检查等,但它不工作Android 如何在ListFragment中触发onListItemClick,android,listview,android-fragments,Android,Listview,Android Fragments,在我的应用程序的平板电脑布局中,我有三个ListFragments和一个常规片段,让我们称它们为Make、Model、Size和Details。首先填充制作列表,然后根据制作选择填充模型列表;选择模型后,填充尺寸列表;选择尺寸后,将显示详细信息。每个事件列表项选择都通过onListItemClick处理程序处理 启动时,我想填充制造列表,选择列表中的第一个Make,并让它通过onListItemClick处理程序填充模型列表,依此类推,以便填充所有列表并显示详细信息-这也是在任何列表中进行任何选
getListView().setItemChecked(0, true);
对开箱即用ListFragment的唯一更改是将CacheColorHint设置为这样
getListView().setCacheColorHint(R.color.GhostWhite);
其中,ghostwite在styles.xml中设置为
<color name="GhostWhite">#88FFFFFF</color>
有什么想法吗
提前感谢。请尝试设置选择位置
1。在列表片段的OnActivityCreated中,创建一个如下所示的接口
public interface ListItemSelectedListener {
public void onListItemSelected(int index);
}
二,。在活动中实现接口
3.在列表片段中创建私有ListItemSelectedListener selectedListener
4.在OnActivityCreated中设置selectedListener.onListItemSelected0
这就是我使用Android支持包时的工作方式-在HC上应该类似,尝试添加这个,它在我的项目中工作:
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Intent intent = new Intent();
intent.setClass(getActivity(), someActivity.class);
startActivity(intent);
}
在onActivityCreatedBundle savedInstanceState方法中的片段类中,可以添加以下内容:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//if the parent is in the landscape, make the first item selected
if (getActivity().getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
try {
if (mItems.size() > 0) {
//notify the activity that an item is selected
mListener.onMasterItemSelected(mItems.get(0));
}
} catch (Exception e) {
Log.e("exception", e.toString());
}
}
}
要选择列表中的第一项,请首先通过触摸获得焦点,然后选择第一项,然后触发onclick处理程序
int position = 0;
getListView().requestFocusFromTouch();
getListView().setSelection(position);
getListView().performItemClick(getListView().getAdapter().getView(position, null, null), position, position);
它看起来确实应该工作,但对我来说不起作用。当我试图在ListView上应用clickListener并试图在滚动时滚动ListView时,是否有人能告诉我我的应用程序崩溃了这里是我的问题,我已经问了,但没有得到任何解决方案。这个难题唯一缺少的部分是将此代码放置在何处。它在onActivityCreated中完美工作。确保执行super.onActivityCreatedsavedInstanceState;或者没有快乐。我在onViewCreated中尝试了它,但没有得到列表,只有右侧视图。