ListActivity的onListItemClick不响应的解决办法
当ListActivity的行中含有checkbox和button等会自动得到焦点的控件时,ListActivity的onListItemClick会不响应,解决办法有二:
(原文地址:http://www.cnblogs.com/rocky_yi/archive/2011/03/14/ListActivity_setFocusable.html , 转载请注明出处!)
方法一:
如果自定义了adapter,则可以在bindView()函数中调用checkbox和button的setFocusable(false)和setFocusableInTouchMode(false);,另它们失去焦点:
public void bindView(View view, Context context, Cursor cursor)
{
//...
checkbox.setFocusableInTouchMode(false);
checkbox.setFocusable(false);
//...
{
//...
checkbox.setFocusableInTouchMode(false);
checkbox.setFocusable(false);
//...
}
方法二:
自定义一个不会自动获得焦点的checkbox:
public class ExtendedCheckBoxListView extends LinearLayout {
private TextView mText;
private CheckBox mCheckBox;
public ExtendedCheckBoxListView(Context context, ExtendedCheckBox aCheckBoxifiedText) {
super(context);
//…
mText.setFocusable(false);
mText.setFocusableInTouchMode(false);
mCheckBox.setFocusable(false);
mCheckBox.setFocusableInTouchMode(false);
//…
}
private TextView mText;
private CheckBox mCheckBox;
public ExtendedCheckBoxListView(Context context, ExtendedCheckBox aCheckBoxifiedText) {
super(context);
//…
mText.setFocusable(false);
mText.setFocusableInTouchMode(false);
mCheckBox.setFocusable(false);
mCheckBox.setFocusableInTouchMode(false);
//…
}
}