【发布时间】:2014-04-18 02:51:24
【问题描述】:
我要求有时我在ListView 中的复选框不可勾选。我正在使用setEnabled(false)。
当用户仍然点击禁用的Checkbox 时,是否会触发 toast 消息?
我还在使用自定义 ArrayAdapter 覆盖 getView 方法。
【问题讨论】:
标签: android listview checkbox android-arrayadapter
我要求有时我在ListView 中的复选框不可勾选。我正在使用setEnabled(false)。
当用户仍然点击禁用的Checkbox 时,是否会触发 toast 消息?
我还在使用自定义 ArrayAdapter 覆盖 getView 方法。
【问题讨论】:
标签: android listview checkbox android-arrayadapter
您可以 :) 使用扩展 CheckBox 并覆盖 onTouchEvent 的辅助类,有点像:
public class DisabledTouchableCheckbox extends CheckBox {
public DisabledTouchableCheckBox(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if ((!isEnabled()) && (event.getAction()==MotionEvent.ACTION_DOWN))
showToast();
return super.onTouchEvent(event);
}
private void showToast() {
... show your toast
}
}
然后在您的 XML 中,您必须将 <CheckBox> 更改为 <com.YOURPACKAGE.DisabledTouchableCheckBox>
【讨论】:
你不能。他们称之为禁用是有原因的。
您可以使用相同的资产创建自定义复选框,但我想这只是在浪费时间。用户会知道该复选框已禁用,因为禁用的小部件以 30% 的 alpha 显示。
【讨论】: