Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cambiar EditText IME_ACTION de forma programática

En mi aplicación necesito mostrar uno o dos editexts para recopilar información (e1 y e2), dependiendo de la selección que el usuario haga a través de un botón de radio. Esto se hace estableciendo el estado de visibilidad del edittext a GONE y funciona bien.

Mi problema es cómo programar el IME_ACTION de "hecho" a "siguiente" para cada caso, es decir:

  • El incremento automático de SQLite no funciona
  • Versión incorrecta de keystore en la llamada android
  • #if en java, como en preprocesadores c
  • Cómo utilizar claves privadas desde el almacenamiento de Android
  • Android studio no puede encontrar el símbolo "Actividad"
  • ¿Es posible usar la implementación de VpnService para capturar y enviar paquetes?
  • 1) Sólo e1 es visible – establece IME_ACTION de e1 a DONE

    2) e1 y e2 son visibles – fije IME_ACTION de e1 a NEXT y IME_ACTION de e2 a DONE.

    Estoy usando android: minSdkVersion = "4" y android: targetSdkVersion = "16" y probando en un dispositivo Android 2.2.

    Aquí está mi diseño:

    <EditText android:id="@+id/e1" android:layout_width="0dip" android:layout_height="wrap_content" android:inputType="text" android:maxLines="1" android:singleLine="true" android:imeOptions="actionDone" android:hint="@string/sh15" android:textColor="@android:color/black" android:textSize="@dimen/s"> </EditText> <EditText android:id="@+id/e2" android:layout_width="0dip" android:layout_height="wrap_content" android:inputType="text" android:maxLines="1" android:singleLine="true" android:imeOptions="actionDone" android:hint="@string/sh16" android:textColor="@android:color/black" android:textSize="@dimen/s"> </EditText> 

    Aquí está mi código:

     RadioGroup r= (RadioGroup) dialog.findViewById(R.id.rg); r.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { switch(checkedId) { case R.id.rb1: //show one edittext e1.setVisibility(View.VISIBLE); e2.setVisibility(View.GONE); e1.setImeOptions(EditorInfo.IME_ACTION_DONE); break; case R.id.rb2: //show two edittext e1.setVisibility(View.VISIBLE); e2.setVisibility(View.VISIBLE); e1.setImeOptions(EditorInfo.IME_ACTION_NEXT); e2.setImeOptions(EditorInfo.IME_ACTION_DONE); break; } } }); 

  • Fondo blanco bajo el cuadro de diálogo de alerta
  • HTML en recurso de cadena?
  • Práctica recomendada: Ampliación o anulación de una clase de proyecto de biblioteca de Android
  • Obtener URL de miniatura desde la URL de la imagen
  • Emulador de Eclipse no responde
  • ¿Dónde exactamente NDK código nativo ejecutar
  • 2 Solutions collect form web for “Cambiar EditText IME_ACTION de forma programática”

     e2.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Overrid public boolean onEditorAction(TextView v, int actionId,KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { //your code } } )}; 

    En caso de que alguien aterrice aquí: EditText.setImeOptions(EditorInfo.IME_ACTION_NEXT); Y Dios te ayude si es TouchWiz 🙂

    También, he notado problemas cuando el EditText no puede cambiar si tiene foco, así que cerciórese de cerrar el teclado y rescindir el foco

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.