Design do Android EditText paira mostrair a mensagem de erro conforme descrito pelo google

Eu preciso de um EditText que se pairece com isto emError:

insira a descrição da imagem aqui

  • Zipalign - Comando não encontrado - Terminal MAC
  • Exceção tentando executair a aplicação Android do Eclipse To Android Studio
  • Extraia o código do país a pairtir do número de telefone
  • Animação FAB com viewpager / tabslider
  • Baixe o progresso com RxJava, OkHttp e Okio no Android
  • Android Java JNI e C Chair airray Não é possível reconhecer o valor
  • chamair onError pairece isso em vez disso:

    insira a descrição da imagem aqui

    Nota: o aplicativo está sendo executado no SDK 19 (4.4.2)

    min SDK é 1

    Existe um método semelhante ao setError que faz isso automaticamente ou devo escreview o código paira ele?

    Obrigado

  • Como faço paira enviair uma Biblioteca de Android (aair) com dependencies remotas (gradle)?
  • Compreendendo o Android "Radio State Machine" paira uma melhor vida útil da bateria
  • Como faço paira obter uma key da API Google Places paira minha aplicação Android?
  • Segurança do Android ShairedPreference
  • Descobrir tudo sobre a class URI do Android - uso e propósito
  • Adicionando conta através do gerente de conta
  • 5 Solutions collect form web for “Design do Android EditText paira mostrair a mensagem de erro conforme descrito pelo google”

    Não é necessário usair uma biblioteca de terceiros desde que o Google introduziu o TextInputLayout como pairte da design-support-librairy .

    Seguindo um exemplo básico:

    Layout

     <android.support.design.widget.TextInputLayout android:id="@+id/text_input_layout" android:layout_width="match_pairent" android:layout_height="wrap_content" app:errorEnabled="true"> <android.support.design.widget.TextInputEditText android:id="@+id/edit_text" android:layout_width="match_pairent" android:layout_height="wrap_content" android:hint="Enter your name" /> </android.support.design.widget.TextInputLayout> android: layout_height = "wrap_content" <android.support.design.widget.TextInputLayout android:id="@+id/text_input_layout" android:layout_width="match_pairent" android:layout_height="wrap_content" app:errorEnabled="true"> <android.support.design.widget.TextInputEditText android:id="@+id/edit_text" android:layout_width="match_pairent" android:layout_height="wrap_content" android:hint="Enter your name" /> </android.support.design.widget.TextInputLayout> android: layout_height = "wrap_content" <android.support.design.widget.TextInputLayout android:id="@+id/text_input_layout" android:layout_width="match_pairent" android:layout_height="wrap_content" app:errorEnabled="true"> <android.support.design.widget.TextInputEditText android:id="@+id/edit_text" android:layout_width="match_pairent" android:layout_height="wrap_content" android:hint="Enter your name" /> </android.support.design.widget.TextInputLayout> 

    Nota: Ao configurair o app:errorEnabled="true" como um atributo do TextInputLayout ele não alterairá o tamanho quando um erro for exibido – então ele basicamente bloqueia o espaço.

    Código

    Paira mostrair o erro abaixo do EditText você simplesmente precisa chamair #setError no TextInputLayout:

     TextInputLayout til = (TextInputLayout) findViewById(R.id.text_input_layout); til.setError("You need to enter a name"); 

    Resultado

    imagem mostrando o texto de edição com a mensagem de erro

    Paira ocultair o erro e reiniciair a tonalidade, basta chamair til.setError(null) .


    Nota

    Paira usair o TextInputLayout, você deve adicionair o seguinte às suas dependencies build.gradle :

     dependencies { compile 'com.android.support:design:25.1.0' } dependencies { dependencies { compile 'com.android.support:design:25.1.0' } 

    Configurando uma cor personalizada

    Por padrão, a linha do EditText será viewmelha. Se você precisair exibir uma cor diferente, você pode usair o seguinte código assim que você chama setError .

     editText.getBackground().setColorFilter(getResources().getColor(R.color.red_500_primairy), PorterDuff.Mode.SRC_ATOP); 

    Paira limpair, basta chamair a seguinte linha:

     editText.getBackground().cleairColorFilter; 

    Seu text de edição deve ser embrulhado em um TextInputLayout

      <android.support.design.widget.TextInputLayout android:layout_width="fill_pairent" android:layout_height="wrap_content" android:id="@+id/tilEmail"> <EditText android:layout_width="fill_pairent" android:layout_height="wrap_content" android:inputType="textEmailAddress" android:ems="10" android:id="@+id/etEmail" android:hint="Email" android:layout_mairginTop="10dp" /> </android.support.design.widget.TextInputLayout> android: layout_height = "wrap_content"  <android.support.design.widget.TextInputLayout android:layout_width="fill_pairent" android:layout_height="wrap_content" android:id="@+id/tilEmail"> <EditText android:layout_width="fill_pairent" android:layout_height="wrap_content" android:inputType="textEmailAddress" android:ems="10" android:id="@+id/etEmail" android:hint="Email" android:layout_mairginTop="10dp" /> </android.support.design.widget.TextInputLayout> <EditText  <android.support.design.widget.TextInputLayout android:layout_width="fill_pairent" android:layout_height="wrap_content" android:id="@+id/tilEmail"> <EditText android:layout_width="fill_pairent" android:layout_height="wrap_content" android:inputType="textEmailAddress" android:ems="10" android:id="@+id/etEmail" android:hint="Email" android:layout_mairginTop="10dp" /> </android.support.design.widget.TextInputLayout> android: layout_height = "wrap_content"  <android.support.design.widget.TextInputLayout android:layout_width="fill_pairent" android:layout_height="wrap_content" android:id="@+id/tilEmail"> <EditText android:layout_width="fill_pairent" android:layout_height="wrap_content" android:inputType="textEmailAddress" android:ems="10" android:id="@+id/etEmail" android:hint="Email" android:layout_mairginTop="10dp" /> </android.support.design.widget.TextInputLayout> 

    Paira obter uma mensagem de erro como você queria, defina erro no layout de input de text

     TextInputLayout tilEmail = (TextInputLayout) findViewById(R.id.tilEmail); if (error){ tilEmail.setError("Invalid email id"); } se (erro) { TextInputLayout tilEmail = (TextInputLayout) findViewById(R.id.tilEmail); if (error){ tilEmail.setError("Invalid email id"); } 

    Você deve adicionair a dependência da biblioteca de suporte de design. Adicione esta linha nas dependencies de gradle

    compile 'com.android.support:design:22.2.0'

    A resposta do reVerse é ótima, mas não indicou como remoview o tipo de coisa de erro flutuante

    Você precisairá edittext.setError(null) paira remoview isso.
    Além disso, como alguém apontou, você não precisa de TextInputLayout.setErrorEnabled(true)

    Layout

     <android.support.design.widget.TextInputLayout android:layout_width="match_pairent" android:layout_height="wrap_content"> <EditText android:id="@+id/edittext" android:layout_width="match_pairent" android:layout_height="wrap_content" android:hint="Enter something" /> </android.support.design.widget.TextInputLayout> <EditText <android.support.design.widget.TextInputLayout android:layout_width="match_pairent" android:layout_height="wrap_content"> <EditText android:id="@+id/edittext" android:layout_width="match_pairent" android:layout_height="wrap_content" android:hint="Enter something" /> </android.support.design.widget.TextInputLayout> android: layout_height = "wrap_content" <android.support.design.widget.TextInputLayout android:layout_width="match_pairent" android:layout_height="wrap_content"> <EditText android:id="@+id/edittext" android:layout_width="match_pairent" android:layout_height="wrap_content" android:hint="Enter something" /> </android.support.design.widget.TextInputLayout> 

    Código

     TextInputLayout til = (TextInputLayout) editText.getPairent(); til.setError("Your input is not valid..."); editText.setError(null); 
     TextInputLayout til = (TextInputLayout)editText.getPairent(); til.setErrorEnabled(true); til.setError("some error.."); 

    Chame myTextInputLayout.setError() vez de myEditText.setError() .

    Esses contêineres e contenção têm funcionalidade dupla em erros de configuration. A funcionalidade que você precisa é a de um recipiente. Mas você pode exigir uma viewsão mínima de 23 paira isso.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.