2016-06-07 5 views
-3

Ich habe ein Textfeld bearbeiten als mobile und Passwort und Szenario ist, dass beim Start der App erscheint mit Fehlertext, was ich möchte bei der Eingabe eines Textes in entsprechenden Feld und nach Abschluss der Bearbeitung Text mit Wert überprüfen, wenn richtig, dann verschieben else show Fehler in diesem Feld.Wie überprüft man den Wert in Text bearbeiten bei der Eingabe von Text in Android?

Code: -

private final BroadcastReceiver m_oOtpReceiver = new BroadcastReceiver() {// creating broadcast to receive otp sent by server from Inbox... 
    @Override 
    public void onReceive(Context context, Intent intent) {// on receive method to read OTP sent by server 
     checkFieldsForEmpty(true);// check whether edit text is empty or not 

    } 
}; 
private TextWatcher m_oTextWatcher = new TextWatcher() {// making object of TextWathcher class 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) {// when text change in Edit tEXT 

    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     checkFieldsForEmpty(false);// CHECK LOGIN BUTTON DISABLED AND ENABED 
    } 
}; 

/*This method check Edit text is empty or not*/ 
public void checkFieldsForEmpty(boolean fromBroadcast) {// this method check Edit text is empty or not 

    s_szMobileNumber = m_InputMobile.getText().toString().trim();// get mobile number from edit Text 
    s_szPassword = m_InputPassword.getText().toString().trim();// get password from edit text 

    if (NetworkUtil.isConnected(getApplicationContext())) { 
     // if mobile number and password are Emoty 
     if (s_szMobileNumber != null && s_szMobileNumber.length() > 7 && s_szMobileNumber.length() < 15) {// check if mobile and password is empty .. 
      if (s_szPassword.length() >= 4 && s_szPassword.length() <= 8) { 
       m_LoginBtn.setEnabled(true);// make Login button disabled 

       m_LoginBtn.setBackgroundColor(Color.rgb(0, 80, 147));// set background color on eabled 
       m_LoginBtn.setOnClickListener(new View.OnClickListener() {// onclick listener on Login Button 
        @Override 
        public void onClick(View v) { 
         postLoginDataToServer(); 

        } 
       }); 
      } else { 
        if (!fromBroadcast) { 

         m_InputPassword.setError("Password must be between 4 to 8 characters long"); 
        } 
       m_LoginBtn.setEnabled(false);// make login button enabled 
       m_LoginBtn.setBackgroundColor(Color.rgb(192, 192, 192));// color of login button 
      } 

     } else { 
       if (!fromBroadcast) { 
        m_InputMobile.setError("Mobile number must be between 7 to 15 characters long"); 
       } 

      m_LoginBtn.setEnabled(false);// make login button enabled 
      m_LoginBtn.setBackgroundColor(Color.rgb(192, 192, 192));// color of login button 

     } 

    } else { 
     try { 
      CSnackBar.getInstance().showSnackBarError(findViewById(R.id.mainLayout), "No Internet Connection Available", getApplicationContext()); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     m_LoginBtn.setEnabled(false); 
     m_LoginBtn.setBackgroundColor(Color.rgb(192, 192, 192)); 
    } 


} 

Antwort

0

Ich kann nicht sehen, wo die boolean „fromBroadcast“ entweder initialisiert oder bekommt es ist Zustand von wissen, ob das, was Sie, bevor Sie die Fehlermeldung überprüfen müssen auf der Textansicht. Von dem, was ich gelesen habe, würde ich annehmen, dass Sie keine if-Anweisung verwenden müssen, um "fromBroadcast" zu überprüfen. Der Code sollte ohne es funktionieren. Wenn Sie die App mit einer Fehlermeldung starten und die Fehler-Nachricht nicht möchten, sollten Sie s_szPassword anstelle von m_InputPassword für die Eingabe überprüfen und Sie können s_szPassword initialisieren, damit das richtige Wort zuerst enthalten ist, damit der Fehler msg nicht am Anfang vorhanden ist.

+0

Bitte aktualisieren Sie den Code – Nitin