是否有可能禁用用户在Android中的ListView中的复选框项目?我有一个listView程序决定什么检查和不检查,我不希望用户更改复选框的状态。是否有捷径可寻?禁用更改listView中的复选框android
我曾尝试将setClickable设置为false,但没有奏效。
感谢
是否有可能禁用用户在Android中的ListView中的复选框项目?我有一个listView程序决定什么检查和不检查,我不希望用户更改复选框的状态。是否有捷径可寻?禁用更改listView中的复选框android
我曾尝试将setClickable设置为false,但没有奏效。
感谢
你不希望允许用户设定值checkbox
,然后只需使用: checkbox.setenabled(false)
或等价的东西在xml
http://developer.android.com/reference/android/widget/TextView.html#setEnabled(boolean)
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;
}
如果您不希望用户检查并取消选中,请勿使用“CheckBox”。使用别的东西,比如图标,来表示已选中和未选中的状态。 – CommonsWare