我的视图中有一个复选框和一个EditText。 我想只在直接用布局条件检查CheckBox时启用我的editText:
android:enabled="@{checkBox.isChecked}"
但我有编译错误。我怎么能这样做?
感谢的
答案 0 :(得分:2)
您应该将edittext
设置为启用false。在你的checkBox
听众中做这样的事情:
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b)
{
if(compoundButton.isChecked){
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
editText.setCursorVisible(true);
editText.setEnabled(true);
}else{
editText.setFocusable(false);
editText.setFocusableInTouchMode(false);
editText.setCursorVisible(false);
editText.setEnabled(false);
}
}
});
答案 1 :(得分:0)
xml在编译时加载,在生命周期onCreate()方法调用中。 之后,只有用户具有布局的可用性。 您正在为条件提供null,因为当您尝试查找其状态时,复选框甚至不会被初始化。 编写代码以查找复选框状态,并将其分配给onResume方法中的editext或textbox。
https://developer.android.com/guide/components/activities/activity-lifecycle.html
检查这一点以便更好地理解...