是否可以禁用用户单击android中listView中的复选框项?我有一个listView,程序决定检查什么,而不是检查,我不希望用户更改复选框的状态。有一个简单的方法吗?
我已经尝试将setClickable设置为false但是没有用。
由于
答案 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;
}