2016-07-29 9 views
-1

Hier ist mein Code hoffe, es ist klar genug Mit diesem Code versuche ich die IsEnabled-Funktion zu verwenden, um zu überprüfen, ob meine EditText-Felder Werte haben, wenn sie keine Werte haben die Submit-Button muss sonst deaktiviert werden, wenn sie alle Werte die Taste so kann der BenutzerWie aktiviere ich meine Schaltfläche, nachdem mein EditText mit Werten abgelegt wurde? Meine Schaltfläche bleibt deaktiviert, auch nachdem ich meine EditText abgelegt habe

neue Aktivität navigieren aktivieren müssen
public class RegisterAccountActivity extends AppCompatActivity { 

    //Declaring Button and EditText 
    private Button submit; 
    private EditText name; 
    private EditText surname; 
    private EditText email; 
    private EditText phoneNumber; 
    private EditText address; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_register_account); 

     submit = (Button) findViewById(R.id.btnSubmitPersonalDetails); 
     name = (EditText)findViewById(R.id.edtName); 
     surname = (EditText)findViewById(R.id.edtSurname); 
     email = (EditText)findViewById(R.id.edtEmail); 
     phoneNumber = (EditText)findViewById(R.id.edtPhoneNumber); 
     address = (EditText)[findViewById][1](R.id.edtPostalAddress); 

     //Calling the checking fields method 
     checkFields(); 

    } 

    //Function to disable button if fields doesn't have value 
    public void checkFields() { 

     //Here i am checking if EditText have values 
     if (!submit.getText().toString().isEmpty() && 
       !name.getText().toString().isEmpty() && 
       !surname.getText().toString().isEmpty() && 
       !email.getText().toString().isEmpty() && 
       !phoneNumber.getText().toString().isEmpty() && 
       !address.getText().toString().isEmpty()) { 

      submit.setEnabled(true); 
     } else { 
      submit.setEnabled(false); 
     } 

    } 

[anbei Bild für das Formular]

enter image description here

+0

einen Text Beobachter auf EditText hinzufügen und Validierung in sie und aktivieren und die Taste auf dem Namen der ur-Zustand deaktivieren –

+0

Sie textwatcher für dieses – KrishnaJ

+0

verwenden können Sie nicht den Zustand zur Laufzeit überprüft werden. daher bleibt es deaktiviert. Wie bereits erwähnt, benötigen Sie dafür einige Runbacks, wie zB einen 'TextWatcher'. – Shaishav

Antwort

0

Kickoff Beispiel für einen EditText:

name.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) { 
      } 

      @Override 
      public void afterTextChanged(Editable editable) { 
       checkFields(); 
      } 
     }); 

zuordnen TextWatcher jedem Ihrer EditText

0
addTextChangedListener(new TextWatcher() { 
    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) 
    { 
    //set your condition here 
    } 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { } 
    @Override 
    public void afterTextChanged(Editable s) { 

    } }); 
0

Verwendung textWatcher:

private final TextWatcher passwordWatcher = new TextWatcher() { 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

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

     } 

     public void afterTextChanged(Editable s) { 
      //set enable or disable at here 
     } 
    }; 

Sie an der afterTextChanged Methode verarbeiten kann.

0

verwenden mehrere TEXTWACHER DAFÜR LIKE BELOW

TextWatcher watcher = new TextWatcher() { 
 
    @Override 
 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
 
      //YOUR CODE 
 
     } 
 

 
     @Override 
 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
 
      //YOUR CODE 
 
     } 
 

 
     @Override 
 
     public void afterTextChanged(Editable editable) { 
 
     if (editable.equals(name.getEditableText())) { 
 
     // DO STH 
 
      checkfields(); 
 
    } else if (editable.equals(phone.getEditableText())) { 
 
     // DO STH 
 
      checkfields(); 
 
    } 
 
    like that///////// 
 
     } 
 
    };

Assign alle EditText in OnCreate-

name.addTextChangedListener(watcher); 
 
     email.addTextChangedListener(watcher); 
 
     phone.addTextChangedListener(watcher); 
 
     address.addTextChangedListener(watcher);

Hoffnung t Sein Wille wird dir helfen, lass es mich wissen.

0
Direct used button clicked this code 

subimit.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (!submit.getText().toString().isEmpty() && 
      !name.getText().toString().isEmpty() && 
      !surname.getText().toString().isEmpty() && 
      !email.getText().toString().isEmpty() && 
      !phoneNumber.getText().toString().isEmpty() && 
      !address.getText().toString().isEmpty()) { 

     //Hear direct intent pass new activity 

    } else { 

    } 
     } 
    });