2017-07-29 152 views
1

你好,我想这样做:我有两个EditText和一个按钮,如果其中一个EditText为空,我想禁用该按钮。要做到这一点,我试试这个:禁用按钮

if(editText1!!.getText().length == 0 || editText2!!.getText().length == 0){ 
      button1!!.setEnabled(false) 
     } 

问题是我的按钮是每次禁用......我会当两个EditText上不是空的,我可以按一下按钮...

哪有我这样做?

谢谢!

+0

使用textwatcher - https://stackoverflow.com/questions/8543449/how-to-use-the-textwatcher-class-在Android – Dexter

+0

谢谢你的确我认为我必须使用textwatcher,但问题是我有两个editText ... –

+0

现在检查。我已经更新了答案。 – Dexter

回答

1

编辑:经OP澄清后。 如果要检查两个editTexts,你可以这样做之后,

 boolean editText1Empty = true; 
     boolean editText2Empty = true; 

     editText1.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

      } 

      @Override 
      public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
       editText1Empty = charSequence.length() == 0; 
       checkButton(); 
      } 

      @Override 
      public void afterTextChanged(Editable editable) { 

      } 
     }); 

     editText2.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

      } 

      @Override 
      public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
       editText2Empty = charSequence.length() == 0; 
       checkButton(); 
      } 

      @Override 
      public void afterTextChanged(Editable editable) { 

      } 
     }); 

     void checkButton() { 
     button.setEnable(!editText1Empty && !editText2Empty); 
     } 
+2

你可以只写条件作为'setEnabled'的参数 – Mibac

+1

这是切肉刀:)但我认为这将使OP更清晰。 – Dexter

+1

我只会把它作为一个'TextWatcher',并检查'​​onTextChanged()'上的'EditText.isEmpty()'。我认为它会更纯粹。 – BakaWaii