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:

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);
        
//…       
    }

} 

 

参考资料: http://stackoverflow.com/questions/1821871/android-how-to-fire-onlistitemclick-in-listactivity-with-buttons-in-list

 

posted on 2011-03-14 17:07  Rocky_Yi  阅读(5085)  评论(0编辑  收藏  举报

导航