2011-02-22 20 views
6

Me preguntaba si puede controlar la entrada en un EditText para moverse de derecha a izquierda? El EditText tendría que ser compatible con insertar/borrar, etc. de derecha a izquierda también. ¿Hay alguna forma de hacer esto?¿Puedes hacer una entrada de EditText de derecha a izquierda?

+2

lo que es realmente lo que estamos tratando de lograr? Es posible que desee insertar un carácter árabe que agregará este comportamiento a un campo de texto. Tiene que ser el primer char, pero no tengo idea de qué char podría ser. –

+0

Tengo un campo de moneda (estadounidense) con una máscara, me gustaría que la entrada se mueva de derecha a izquierda. – ninjasense

+0

@ Loïc Faure-Lacroix sí, cuando escribo en árabe, podemos ver el texto de derecha a izquierda –

Respuesta

8

Parece que solo tiene que establecer la gravedad a la derecha.

+1

@Rich ....... si establecemos Gravity en el lado derecho que solo podemos establecer el texto al lado derecho. –

+0

Él está pidiendo que el texto escriba de derecha a izquierda, no el texto en el pie derecho. El trabajo "DERECHO" se escribiría "THGIR" –

+0

@ CamilleSévigny. No creo que sea cierto. En los comentarios, dice que es un campo monetario estadounidense. Ingresar 1-0-0-0 en ese orden no se debe mostrar como 0001 si se trata de un campo de moneda. Debe mostrarse como $ 10.00.Debería mostrarse en el orden en que se ingresó, pero alineado a la derecha. No escriba 4-3-2-1 para ingresar $ 12.34 en cualquier tipo de sistema para trabajar con moneda estadounidense ... no una caja registradora en el país funciona de esta manera. 3 downvotes en esta respuesta, pero lo que (s) realmente estaba preguntando era cómo alinear correctamente el texto. – Rich

1

tratar este código

//initialize 
EditText userName = (EditText)findViewById(R.id.userName); 

//set gravity for userName 
userName.setGravity(Gravity.RIGHT); 
0

No es la forma manual de hacerlo utilizando el siguiente código:

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 

    if (keyCode == KeyEvent.KEYCODE_MENU) { 
     // Each time click Menu button on the bar 
     // Set the cursor to the first index 
     mEtEmail.setSelection(0); // YOUR EDIT TEXT 
    } 

    return super.onKeyUp(keyCode, event); 
} 

p/s: O puede cambiar

KeyEvent.KEYCODE_MENU

cumplir con sus deseos,

o puede probar con Bidi.

Gracias,

-1

intenta esto ....

  1. Inicializar usuario y contraseña campos.

    EditText username = (EditText) findViewById(R.id.username); 
    
    EditText password = (EditText) findViewById(R.id.password); 
    
  2. Obtener localización actual para idiomas RTL como el árabe, etc ,.

    String getCurrentLocale = Locale.getDefault().getDisplayLanguage(); 
    
  3. Luego debemos verificar qué idioma se selecciona para RTL o LTR.

    if(getCurrentLocale.equalEgnoreCase("English")){   //LTR languages 
    
         username.setGravity(Gravity.Left); 
    
         password.setGravity(Gravity.Left); 
    
    }else{              //RTL languages 
    
        username.setGravity(Gravity.Right); 
    
        password.setGravity(Gravity.Right); 
    
    } 
    
  4. Happy coding ...!

10

Agregue esto a su EDITTEXT

 android:textDirection="rtl" 
+0

Mantenga esto como una nota: - android: textDirection requiere el nivel de API 17 –

4

Sólo tiene que utilizar esto:

android:layout_gravity="start" 
android:textAlignment="viewStart" 
+0

Editar texto El soporte de RTL funciona con esto. – Kathi

Cuestiones relacionadas