2016-11-02 8 views
0

Ich bin sehr neu in der Codierung. Was ich versuche zu tun ist, dass wenn jemand nichts schreibt, benutze setError() wie "Bitte schreibe deine Antwort." Wenn jedoch jemand auf das Textfeld klickt, möchte ich, dass die Schrift verschwindet, aber das Fehlersymbol bleibt erhalten. Ich habe eine Lösung gesehen und ausprobiert, wo Sie den setError überschreiben, um das Bild zu setzen.Wie setze ich die CharSequence für setError()

public MyEditText(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

@Override 
public void setError(CharSequence error, Drawable icon) { 
    setCompoundDrawables(null, null, icon, null); 

} 

jedoch mit dieser Methode kann ich keine CharSequence

+0

Es wäre nett, wenn Sie die vollständige Datei gepostet haben, damit wir sicher sein können, dass Sie 'class'es richtig verwenden. –

Antwort

0

Sie Fehler auf, klicken Sie auf die Schaltfläche sagen registrieren oder logge dich ein, was ist Ihre Funktion gehen voraus festlegen. und prüfen, ob der String leer ist als die Fehler gesetzt wie

String str = myEditText.getText().toString(); 

if (str.length() == 0 || str.equals("")) { 
    myEditText.setError("field can't be empty"); 
} 
+0

Vielen Dank für die Antwort! Allerdings habe ich mir eine andere Antwort beim Stack-Überlauf angeschaut und meinen setError überschrieben. So, jetzt, selbst wenn ich beschließe, etwas zu schreiben, funktioniert es nicht. Ich kann nur das Bild wählen. Also, weißt du, ob es sowieso (ex setCharsequence o etwas) gibt, das es mir erlauben wird, die erroe-Massage in meinem Override zu setzen? Vielen Dank für die Antwort trotzdem. –

0

Einfacher Griff in Schaltfläche klicken und zeigen Fehler msg wie unten. seine Arbeit für mich.

@Override 
     public void onClick(View v) { 
      String data = mEditText.getText().toString(); 
      if(data.isEmpty()) 
      { 
       mEditText.setError(""Please write your your answer."); 
       return; 
      } 
     } 
Verwandte Themen