2015-12-26 34 views
0

是否有可能禁用用户在Android中的ListView中的复选框项目?我有一个listView程序决定什么检查和不检查,我不希望用户更改复选框的状态。是否有捷径可寻?禁用更改listView中的复选框android

我曾尝试将setClickable设置为false,但没有奏效。

感谢

+0

如果您不希望用户检查并取消选中,请勿使用“CheckBox”。使用别的东西,比如图标,来表示已选中和未选中的状态。 – CommonsWare

回答

0

CommonsWare的评论当然是正确 - 如果用户实际上无法与其交互,则不应使用复选框,这会让用户感到困惑。

但是直接回答你的问题应该只是使用checkbox.setEnabled(false)。当然,您需要为每一行都做到这一点。

另一种方法是使用颜色或图标来表示您的状态。背景颜色只需要列表视图(android:listSelector="@drawable/selection_state_drawable")上的正确颜色状态列表,并且图标只是覆盖getView。大致如下所示:

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.my_layout, parent, false); 
    } 
    MyItemType data = getItem(position); 
    ImageView checkImage = (ImageView) convertView.findViewById(R.id.state_icon); 
    checkImage.setImageResource(data.isSelected()? R.drawable.ic_selected : R.drawable.ic_not_selected) { 
    return convertView; 
}