禁用更改listView android中的复选框

时间:2015-12-26 22:35:15

标签: android listview checkbox android-listview

是否可以禁用用户单击android中listView中的复选框项?我有一个listView,程序决定检查什么,而不是检查,我不希望用户更改复选框的状态。有一个简单的方法吗?

我已经尝试将setClickable设置为false但是没有用。

由于

2 个答案:

答案 0 :(得分:0)

您不希望允许用户设置checkbox的值,然后只需使用: checkbox.setenabled(false)

中的xml或同等内容

http://developer.android.com/reference/android/widget/TextView.html#setEnabled(boolean)

答案 1 :(得分: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;
}