user2749139
user2749139

Reputation: 119

android: making edittext not editable and then make it back editable again

I am trying to make edittext_2 not editable if edittext_1 is empty, but if edittext_1 is not empty I want edittext_2 to be editable.

I tried this code:

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

In the beginning the code works fine it makes edittext_2 not editable, but when I enter a value in edittext_1, edittext_2 still not editable.

Upvotes: 1

Views: 5558

Answers (4)

Spring Breaker
Spring Breaker

Reputation: 8251

What you have initialized will work for first time but when you make some changes in the edittext_1, you should again enable the edittext_2.Add the following code also,

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) {}
       });

Upvotes: 0

Sonali8890
Sonali8890

Reputation: 2005

Try this

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

        }
    });

Upvotes: 0

Chirag Ghori
Chirag Ghori

Reputation: 4231

You need to add edittext_1 on TextWatcher().

Try this

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

        }
    });

Upvotes: 3

Piyush
Piyush

Reputation: 18933

Use this.

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

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

}

Upvotes: 0

Related Questions