我的自定义ListView
无法点击。我正在使用setOnItemClickListener
。我的ListView
行包含按钮,图片视图和一些文本视图。请帮我点击这些项目。
答案 0 :(得分:0)
将clickable = false设置为listview行中的所有可点击视图,如(按钮)。
答案 1 :(得分:0)
如果您使用ImageButton
,CheckBox
,Button
等控件,则会遇到问题here和here。
这只是因为此类控件可以从ListView
窃取焦点,并且无法选择/点击完整的列表项。
我假设您使用适配器来设置列表的内容。在该适配器内,您可以为每个项目指定onClickListener()
,如下所示:
public class MyListAdapter extends ArrayAdapter<String>{
.......
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView=inflator.inflate(R.layout.list_item, null, true);
ImageView image=(ImageView) rowView.findViewById(R.id.image1);
image.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//do something
}
}
Button button=(ImageView) rowView.findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//do something
}
}
.......
}
}
但请记住,在使用ImageButton
,CheckBox
,Button
等控件时,您需要在XML中指定属性 android:focusable="false"
。对于 ImageButton
,您需要在getView()
方法中执行此操作:
final ImageButton imgBtn=(ImageButton) rowView.findViewById(R.id.imgBtn);
imgBtn.setFocusable(false);
imgBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//do your task here
}
});
希望我回答你的问题。