自定义列表视图行不可点击
问题描述:
我的自定义ListView
不可点击。我正在使用setOnItemClickListener
。我的ListView
行包含一个按钮,图像视图和一些文字浏览。请帮助我使物品可点击。自定义列表视图行不可点击
答
的情况下,如果你使用的控制一样ImageButton
,CheckBox
,Button
等,那么你将面临讨论here和here问题。
这仅仅是因为这样的控制可以窃取从ListView
焦点和不能被选择的完整列表项/点击。
我假设您使用适配器来设置您的列表的内容。该适配器在里面你可以指定onClickListener()
S表示这样每个项目:
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
}
});
希望我回答你的问题。
答
将clickable = false设置为像列表视图行中的所有可点击视图(按钮)。
添加一些代码片段。 – 2014-02-25 11:53:26
试图在网上找到解决方案,检查这个答案http://stackoverflow.com/a/12813906/1168654 –
set your android:focusable =“false”''你的自定义'ListView'项目布局中的所有'视图'。 .. –