Cómo establecer programaticamente drawableRight en Android Edittext?

Sé sobre el conjunto drawableRight en XML. Pero i requerido hacerlo programmatically porque es cambio según alguna condición.

Puede utilizar la siguiente función:

editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0); 

El orden de params correspondiente a la localización estirable es: left, top, right, bottom

Más información aquí

 EditText myEdit = (EditText) findViewById(R.id.myEdit); myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0); // where params are (left,top,right,bottom) 

También puede configurar el relleno de forma programable mediante programación:

 myEdit.setCompoundDrawablePadding("Padding value"); 

Intente como abajo:

 Drawable img = getContext().getResources().getDrawable( R.drawable.smiley ); EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0); 

Editar:

  int img = R.drawable.smiley; EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0); 
 int img = R.drawable.smiley; editText.setCompoundDrawables( null, null, img, null ); 

Explicado aquí

 setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom) 

Establece los Dibujos (si los hay) para que aparezcan a la izquierda de, arriba, a la derecha de y debajo del texto. Utilice 0 si no desea un Drawable allí. Los límites de los Dibujos se establecerán en sus límites intrínsecos.

Tratar:

 EditText editFirstname = (EditText) findViewById(R.id.edit_fname); Drawable icUser = getResources().getDrawable(R.drawable.ic_user); editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null); 

Entonces usted puede agregar un oyente del tacto a ese específico drawable.

Usted puede utilizar su vista editText (aquí es txview) construido en la función setCompoundDrawablesWithIntrinsicBounds () para hacer lo que está buscando

En mi código lo usé así. Txview.setCompoundDrawablesWithIntrinsicBounds (0,0, R.drawable.ic_arrow_drop_up, 0);

 txview.setCompoundDrawablesWithIntrinsicBounds(left,top,right,bottom); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.