2017-02-08 7 views
0

Ich versuche, Fehler zu zeigen, wenn falscher Wert in EditText eingeführt wird, ist unten meine XML-DateiEditText zeigt keine Fehler msg zeigt nur Fehlersymbol

<EditText 
       android:id="@+id/BasicInfoDOBEditText" 
       android:onClick="onCalenderClick" 
       style="@style/TableRowSearchResultView" 
       android:layout_width="150dp" 
       android:layout_height="wrap_content" 
       android:focusable="false" 
       android:inputType="date" /> 

und wie ich versuche, Fehler zu zeigen, wie dies .

   dateEditText.setFocusable(true); 
       dateEditText.requestFocus(); 
       dateEditText.setError("wrong input"); 

aber es zeigt nur Fehler-Symbol in Edittext ohne "falsche Eingabe". Ich weiß, dass es eine Lösung gibt, wie EditText erweitern und SetError() außer Kraft setzen, aber gibt es eine einfache Lösung dafür oder ich mache etwas falsch. Bitte helfen Sie!

+0

seine wegen style = "@ style/TableRowSearchResultView" Zeile zu entfernen, wenn nicht –

+0

erforderlich ist es erforderlich, hilft. – FaisalAhmed

+0

@howdoidothis wenn wir edittext.setError(); Das Fehlersymbol wird standardmäßig angezeigt – FaisalAhmed

Antwort

0

um Fehler am editText zu zeigen, bevorzuge ich normalerweise TextInputLayout.

XML

<android.support.design.widget.TextInputLayout 
    android:layout_margin="@dimen/margin_full" 
    android:id="@+id/input_layout_new_todo" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/toolbar_create_todo"> 

    <EditText 
     android:id="@+id/et_new_todo" 
     android:inputType="text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/hint_todo_create_new" 
     /> 

</android.support.design.widget.TextInputLayout> 

JAVA

private void getEtData(){ 
    title = todoEt.getText().toString(); 
    if(title.isEmpty() || title == null){ 
     inputLayoutHolder.setErrorEnabled(true); 
     inputLayoutHolder.setError(getResources().getString(R.string.error_no_et_entry)); 
     Handler h = new Handler(); 
     h.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       inputLayoutHolder.setErrorEnabled(false); 
      } 
     },1500); 
    }else{ 
     title = todoEt.getText().toString(); 
     Log.i(TAG,"todo title: "+title); 
    } 
} 

Hoffnung, dass es