可以在禁用时立即启用EditText

时间:2014-08-11 01:18:56

标签: android

当我调用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以禁用/启用它。

有没有办法可以让它立即反映其状态,而不是改为不同的焦点以启用它?

1 个答案:

答案 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);
            }
        }
    });

通过这种方式,您可以立即启用/禁用。