android:使edittext不可编辑,然后再次使其可编辑

时间:2014-03-06 12:42:40

标签: android android-edittext

如果edittext_2为空,我试图让edittext_1无法修改,但如果edittext_1不为空,我希望edittext_2可以编辑。

我试过这段代码:

if (edittext_1.getText().toString().equals(""))
{ 
    edittext_2.setEnabled(false);
}
else
{
    edittext_2.setEnabled(true);
}

一开始,代码工作正常,edittext_2无法编辑,但当我在edittext_1中输入值时,edittext_2仍然无法编辑。

4 个答案:

答案 0 :(得分:3)

您需要在edittext_1上添加TextWatcher()

试试这个

edittext_1.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            // TODO Auto-generated method stub
            if (s.toString().equals("")) {
                edittext_2.setEnabled(false);
            } else {
                edittext_2.setEnabled(true);

            }
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

        }
    });

答案 1 :(得分:0)

使用此功能。

if (edittext_1.getText().equalsIgnoreCase(""))
{ 
  edittext_2.setEnabled(false);
  edittext_2.setFocusable(false);

}
else
{
 edittext_2.setEnabled(true);
 edittext_2.setFocusable(true);

}

答案 2 :(得分:0)

试试这个

editText2.setEnabled(false);
    editText1.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            if (!editText1.getText().toString().equals("")) {
                editText2.setEnabled(true);
            } else {
                editText2.setEnabled(false);
            }
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

        }
    });

答案 3 :(得分:0)

您初始化的内容将首次有效,但当您在edittext_1中进行一些更改时,您应该再次启用edittext_2。还要添加以下代码,

edittext_1.addTextChangedListener(new TextWatcher() {

              public void afterTextChanged(Editable s) {

               if (edittext_1.getText().toString().equals(""))
                 { 
                   edittext_2.setEnabled(false);
                 }
               else
                 {
                 edittext_2.setEnabled(true);

                 }
              }

          public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

          public void onTextChanged(CharSequence s, int start, int before, int count) {}
       });