禁用listView android中复选框的更改
Posted
技术标签:
【中文标题】禁用listView android中复选框的更改【英文标题】:Disable changing of checkbox in listView android 【发布时间】:2016-04-01 06:18:13 【问题描述】:是否可以禁用用户单击 android 中 listView 中的复选框项目?我有一个 listView 程序决定检查和不检查的内容,我不希望用户更改复选框的状态。有没有简单的方法可以做到这一点?
我尝试将 setClickable 设置为 false,但没有成功。
谢谢
【问题讨论】:
如果您不希望用户选中和取消选中它,请不要使用CheckBox
。使用其他东西(例如图标)来指示选中和未选中状态。
【参考方案1】:
您不想让用户设置checkbox
的值,那么只需使用这个:
checkbox.setenabled(false)
或 xml
中的等效项
http://developer.android.com/reference/android/widget/TextView.html#setEnabled(boolean)
【讨论】:
【参考方案2】: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;
【讨论】:
以上是关于禁用listView android中复选框的更改的主要内容,如果未能解决你的问题,请参考以下文章
在 VB .NET 2008 Winform Listview 中禁用复选框选择