Droit dessiné dans l'édition de texte sans mise à jour après erreur

Modifier le texte dans Android ne permet pas de modifier Draw après setError . J'ai utilisé le droit drawable pour le champ du mot de passe, mais si l'erreur arrive dans le champ du mot de passe, il ne permettra pas de changer le dessin après lui. Avant l'erreur, ça marche bien.

<EditText android:id="@+id/edt_reg_password" style="@style/editText_full_view" android:layout_height="wrap_content" android:layout_below="@id/edt_reg_email" android:layout_marginTop="@dimen/padding_normal" android:drawableLeft="@mipmap/ic_action_password" android:drawableRight="@mipmap/ic_action_password_visibility" android:drawablePadding="@dimen/padding_normal" android:hint="@string/hint_password" android:inputType="textPassword" android:maxLength="25" android:paddingLeft="@dimen/padding_normal" tools:visibility="visible" /> 

Code Java pour changer l'heure de l'icône des yeux

  • FragmentManager - IllegalStateException - Pas d'hôte
  • AndroidGameWindow.SetDisplayOrientation NullReferenceException
  • Icône d'image dans la vue de liste extensible dans Android
  • Force Parse Push Notifications pour utiliser PPNS au lieu de GCM
  • Le constructeur Intent est indéfini
  • Autorisation d'Android de créer une base de données
  •  private void setPasswordDrawable() { final Drawable showpass_icon = getResources().getDrawable(R.mipmap.ic_action_password_visibility); final Drawable hidepass_icon = getResources().getDrawable(R.mipmap.ic_action_password_visibility_off); final Drawable pass_drawable = getResources().getDrawable(R.mipmap.ic_action_password); pass_drawable.setBounds(0, 0, pass_drawable.getIntrinsicWidth(), pass_drawable.getIntrinsicHeight()); //edtPassword.setCompoundDrawables(pass_drawable, null, showpass_icon, null); edtPassword.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (edtPassword.getCompoundDrawables()[2] == null) { return false; } if (event.getAction() != MotionEvent.ACTION_UP) { return false; } if (event.getX() > edtPassword.getWidth() - edtPassword.getPaddingRight() - showpass_icon.getIntrinsicWidth()) { if (isPasswordVisible) { runOnUiThread(new Runnable() { @Override public void run() { //edtPassword.setError(null); edtPassword.setTransformationMethod( PasswordTransformationMethod.getInstance()); edtPassword.setSelection(edtPassword.getText().length()); showpass_icon.setBounds(0, 0, showpass_icon.getIntrinsicWidth(), showpass_icon.getIntrinsicHeight()); edtPassword.setCompoundDrawables(pass_drawable, null, showpass_icon, null); } }); isPasswordVisible = false; } else { runOnUiThread(new Runnable() { @Override public void run() { //edtPassword.setError(null); edtPassword.setTransformationMethod( HideReturnsTransformationMethod.getInstance()); edtPassword.setSelection(edtPassword.getText().length()); hidepass_icon.setBounds(0, 0, hidepass_icon.getIntrinsicWidth(), hidepass_icon.getIntrinsicHeight()); edtPassword.setCompoundDrawables(pass_drawable, null, hidepass_icon, null); } }); isPasswordVisible = true; } } return false; } }); } 

    Pour définir une erreur

     public void setViewError(View view, String message) { if (view instanceof EditText) { ((EditText) view).setError(message); } } 

    Exemple en direct

  • EditText provoque une fuite de mémoire
  • Comment puis-je utiliser Android SyncAdapter?
  • Boot Receiver ne fonctionne pas
  • Utilisez AudioTrack avec AudioManager setSpeakerphoneOn
  • Android, cette API est marquée comme interne à la bibliothèque de support et ne doit pas être consultée à partir de l'erreur d'application
  • Stockage de la base de données SQLite à l'aide d'Android et Phonegap
  • One Solution collect form web for “Droit dessiné dans l'édition de texte sans mise à jour après erreur”

    Vous pouvez utiliser cela comme –

     if(error=true){ editText.setCompoundDrawablesWithIntrinsicBounds( 0, 0,R.drawable.ic_error, 0); editText.setCompoundDrawablePadding(5);} else{ editText.setCompoundDrawablesWithIntrinsicBounds( 0, 0,R.drawable.ic_corrct, 0); editText.setCompoundDrawablePadding(5);} 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.