Android SETONITEMCLICK侦听器不工作

Android SETONITEMCLICK侦听器不工作,android,onclick,Android,Onclick,我无法让McIcklistener工作。我所做的就是用意图打开一个片段。如果我在这里做什么可疑的事,请务必告诉我 public class MyListFragment extends ListFragment { private ArrayList<String> myList = null; private ArrayAdapter<String> myAdapter; @Override public void o

我无法让McIcklistener工作。我所做的就是用意图打开一个片段。如果我在这里做什么可疑的事,请务必告诉我

public class MyListFragment extends ListFragment {

    private ArrayList<String> myList = null;
    private ArrayAdapter<String> myAdapter;

        @Override
        public void onActivityCreated(Bundle savedInstanceState){
            Log.d("Example:", "In Fragement Calss");
            super.onActivityCreated(savedInstanceState);

            Resources myResources = getResources();
            myList = new ArrayList<String>(Arrays.asList(myResources.getStringArray(R.array.myExamArray)));
            myAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,myList);
            setListAdapter(myAdapter);

            ListView lv = (ListView) getActivity().findViewById(R.id.listView);
            lv.setOnItemClickListener(new OnItemClickListener(){

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                Intent myIntent = new Intent(view.getContext(), DetailsFragment.class);

                startActivity(myIntent);
            }

           });

        }

}
公共类MyListFragment扩展ListFragment{
private ArrayList myList=null;
专用阵列适配器myAdapter;
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
Log.d(“例如:,”在Fragement Cals中”);
super.onActivityCreated(savedInstanceState);
Resources myResources=getResources();
myList=newarraylist(Arrays.asList(myResources.getStringArray(R.array.myExamArray));
myAdapter=newArrayAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,myList);
setListAdapter(myAdapter);
ListView lv=(ListView)getActivity().findViewById(R.id.ListView);
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
Intent myIntent=newintent(view.getContext(),DetailsFragment.class);
星触觉(myIntent);
}
});
}
}

我看不出您在哪里为这个片段膨胀特定的XML。。。但您可能引用了错误的ListView

不管怎样,您都应该使用现有的方法:

公共类MyListFragment扩展ListFragment{
private ArrayList myList=null;
专用阵列适配器myAdapter;
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
//删除侦听器,但保留所有其他内容
}
@凌驾
public void onListItemClick(列表视图l、视图v、整数位置、长id){
Intent myIntent=新的Intent(this,DetailsFragment.class);
星触觉(myIntent);
}
}

我看不出您在哪里为这个片段膨胀特定的XML。。。但您可能引用了错误的ListView

不管怎样,您都应该使用现有的方法:

公共类MyListFragment扩展ListFragment{
private ArrayList myList=null;
专用阵列适配器myAdapter;
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
//删除侦听器,但保留所有其他内容
}
@凌驾
public void onListItemClick(列表视图l、视图v、整数位置、长id){
Intent myIntent=新的Intent(this,DetailsFragment.class);
星触觉(myIntent);
}
}

请注意,ListView会阻止对至少包含一个可聚焦项的项目的单击 但它不会使调用内容焦点可访问 setItemsCanFocus(true)。一种解决方法是使用

android:descendantFocusability="blocksDescendants"

在定义列表项的布局中。(我第一次从自己那里了解到这一点,但其他一些SO帖子也指出了这一点。)您的布局是否包含按钮?如果是这样的话,您就会陷入这种情况。

请注意,ListView会阻止对至少包含一个可聚焦项的项目的单击 但它不会使调用内容焦点可访问 setItemsCanFocus(true)。一种解决方法是使用

android:descendantFocusability="blocksDescendants"

在定义列表项的布局中。(我第一次从自己那里了解到这一点,但其他一些SO帖子也指出了这一点。)您的布局是否包含按钮?如果是这样的话,你就会陷入这种情况。

事实上,我对这种情况还不熟悉。。我不知道这里的系统是如何工作的。我会接受答复的。事实上,我对这一点还不熟悉。。我不知道这里的系统是如何工作的。我将继续并接受响应;具有ListView lv=getListView();触发了事件,并能够调用我的其他活动,因为此片段正在扩展listfragment。我认为这可能会起作用,但对我来说,使用
onListItemClick
回调比使用
setOnItemClickListener()
创建第二个侦听器更有意义。替换这行代码ListView lv=(ListView)getActivity().findViewById(R.id.listView);具有ListView lv=getListView();触发了事件,并能够调用我的其他活动,因为此片段正在扩展listfragment。我认为这可能会起作用,但对我来说,使用
onListItemClick
回调比使用
setOnItemClickListener()
创建第二个侦听器更有意义。