Android 监听器不';在ListView中似乎不起作用

Android 监听器不';在ListView中似乎不起作用,android,listview,onitemclicklistener,Android,Listview,Onitemclicklistener,我试图在ListView中设置一个简单的onItemClickListener,它通过ArrayAdapter package it.polito.mad.task2; 导入java.io.IOException; 导入java.io.InputStream; 导入java.util.ArrayList; 导入org.json.JSONArray; 导入org.json.JSONException; 导入org.json.JSONObject; 导入android.app.ListFragmen

我试图在
ListView
中设置一个简单的
onItemClickListener
,它通过
ArrayAdapter

package it.polito.mad.task2;
导入java.io.IOException;
导入java.io.InputStream;
导入java.util.ArrayList;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.app.ListFragment;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.ListView;
公共类listFragment扩展了listFragment{
创建视图上的公共视图(Layoutiner li、视图组vg、捆绑包b){
视图v=li.inflate(R.layout.fraglist,vg,false);//inflate使用所需内容填充视图
//使用适配器加载片段中的ImageView
ListView ListView=(ListView)v.findViewById(R.id.listViewListFrag);//从适配器获取视图的资源id以填充数据
ArrayList pics=JsonLoad(“list.json”);
operaAdapter=new operaAdapter(this.getActivity(),R.layout.opera,R.id.element,pics);//创建适配器,将加载内容所需的参数传递给opera布局中的元素
setAdapter(adapter);//为片段中的视图设置适配器
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共单击(适配器视图arg0,视图arg1,内部位置,
长arg3){
AppObj app=(AppObj)getActivity().getApplication();
Intent-goToDet=newintent(getActivity(),ActivityDetails.class);
应用程序设置项(位置);
星触觉(goToDet);
}
});
返回v;
}
//更多方法
}
这是适配器类

package it.polito.mad.task2;
导入java.io.IOException;
导入java.util.ArrayList;
导入android.app.Activity;
导入android.content.Context;
导入android.graphics.drawable.drawable;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.TextView;
公共类operaAdapter扩展了ArrayAdapter{
私人活动法;
数组列表;
专用静态充气机=空;
公共operaAdapter(活动a、int布局、int元素、ArrayList res){//保存在局部变量中参数的内容
超级(a,布局,res);
act=a;
list=res;
}
@凌驾
public int getCount(){
返回list.size();
}
@凌驾
公共项目(内部位置){
返回列表。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
文本视图支架;
if(convertView==null){
充气机=(LayoutFlater)act.getSystemService(Context.LAYOUT\u充气机\u服务);
convertView=充气机。充气(R.layout.opera,空);
holder=(TextView)convertView.findViewById(R.id.element);
convertView.setTag(支架);
}
否则{
holder=(TextView)convertView.getTag();
}
holder.setText(list.get(position.getTitle());
可抽出式d;
试一试{
d=Drawable.createFromStream(act.getAssets().open(list.get(position.getImage()),null);
d、 setBounds(0,0,200,200);//设置文本左侧可绘制的大小
holder.setCompoundDrawables(d,null,null,null);
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回视图;
}
}

我尝试了几种方法,但侦听器似乎没有收到任何事件,我是否遗漏了任何内容?

您正在设置
onItemClick侦听器,但在
onItemClick
回调上没有执行任何操作。尝试以下操作以显示正在看到单击:

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

            // When clicked, show a toast with the TextView text
            Toast.makeText(getApplicationContext(), "Position " + position 
                    + " clicked", Toast.LENGTH_SHORT).show();
        }
    });
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//单击后,显示带有文本视图文本的祝酒词
Toast.makeText(getApplicationContext(),“Position”+Position
+“单击”,Toast.LENGTH_SHORT.show();
}
});

如果您正在检查是否使用断点或其他东西进入侦听器,那么我会检查您的适配器是否出于某种原因没有返回为空值。对不起,我忘了提到我在那里启动了一个活动,我会把它添加到code@user1007179您是否尝试添加
日志
土司
(我的示例)以验证是否正在调用
onItemClick
?是的,它不起作用。似乎有什么东西阻止了事件的发生intercepted@user1007179您还有哪些与您的
列表视图交互的代码?你肯定还有什么地方做错了,但你还没有发布。包含视图的片段在MainActivity中,我要补充一点