我正在尝试让OnClickListener在我的CustomAdapter中工作,但在我的情况下没有任何反应。
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if(inflater == null){
inflater= (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
if(view==null){
view=inflater.inflate(R.layout.list_item_blog,viewGroup,false);
ListView lv = (ListView) view.findViewById(R.id.listView);
if(lv!=null){
lv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Dialog d = new Dialog(view.getContext());
d.setContentView(R.layout.dialog_layout);
d.show();
}
});
}
}
答案 0 :(得分:0)
我怀疑你的lLstItemView里面有一个ListView。你现在正在做的是获取你的列表项,然后尝试在其中找到ListView来设置你的点击监听器。
如果您确实想在整个列表中设置单击侦听器,那么您应该在活动中执行此操作,或者可以通过添加clickListener或作为参数传入的父viewGroup
来设置它:
viewGroup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Dialog d = new Dialog(view.getContext());
d.setContentView(R.layout.dialog_layout);
d.show();
}
});
如果要在列表项上设置单击侦听器,则应使用ListView.setOnItemClickListener(ClickListener)
在活动代码中的listView上设置clickListener:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Dialog d = new Dialog(view.getContext());
d.setContentView(R.layout.dialog_layout);
d.show();
}
});
如果要在列表项目内的视图上设置单击侦听器,请通过检查list_item_blog
中是否存在您尝试获取的视图的ID来确保获得正确的子视图。
祝你好运!希望这会有所帮助。