当我调用editText.setEnabled(true)时,可以立即启用editText字段; ?
目前我有一个代码说:
toggleButton = (ToggleButton) findViewById(R.id.toggleButton);
row1TextField = (EditText) findViewById(R.id.row1EditText);
row2TextField = (EditText) findViewById(R.id.row2EditText);
if(toggleButton.isChecked())
{
if(row1TextField.isFocused()){
row2TextField.setEnabled(false);
}
}
if(!toggleButton.isChecked())
{
if(row1TextField.isFocused()){
row2TextField.setEnabled(true);
}
}
使用此代码,EditText上的setEnabled不会立即反映出来。例如,当我在toggleButton的状态ON和OFF之间切换时,Row2TextField自动启用/禁用,尽管我在row1TextField上启用了。我必须单击其他EditText并返回row1TextField以禁用/启用它。
有没有办法可以让它立即反映其状态,而不是改为不同的焦点以启用它?
答案 0 :(得分:0)
你应该使用onCheckedChangedListender for ToggleButton
并且应该喜欢这个
toggle.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked){
row1TextField.setEnabled(true);
row2TextField.setEnabled(false);
}
else
{
row1TextField.setEnabled(false);
row2TextField.setEnabled(true);
}
}
});
通过这种方式,您可以立即启用/禁用。