Cómo detectar EditText se centró en Android. ¿No es por el usuario final tocar el texto de edición?

Un android.widget.EditText puede conseguir el foco por dos razones como sé:

Caso 1 . Los usuarios finales tocan el texto de edición por propósito.

Caso 2 . El sistema le da automáticamente la opción Editar texto.

  • Navegación
  • Primer enfoque predeterminado

Mi pregunta es: ¿Cómo detectar el Caso 2 SOLAMENTE ? (¿Listener de eventos?)

La razón por la que quiero detectar el caso 2 es: Quiero establecer la posición actual es la última posición si el texto de edición se enfoque por el caso 2.

EditText.setOnFocusChangeListener es para ambos case1, case2 así que parece que no puedo usar esto.

¡Gracias!

Actualizado
Implemente android.view.View.OnFocusChangeListener en su actividad (por ejemplo) y configure yourView.setOnFocusChangeListener(yourActivity)
Si lo combina con OnTouchListener , puede filtrar los toques del usuario ya que onTouch () se llama primero – puede establecer un miembro de clase booleano. Asegúrese de reiniciar el booleano cuando se pierde el foco.

El código debe ser algo así:

 ... import android.view.View.OnFocusChangeListener; ... public class MainActivity extends Activity implements OnFocusChangeListener, OnTouchListener { boolean userTouchedView; @Override public View onCreateView(...) { ... yourView.setOnFocusChangeListener(this); ... } @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus && !userTouchedView)) { //YOUR CASE 2 } else if(!hasFocus) userTouchedView=false; } @Override public boolean onTouch(final View v, MotionEvent event) { if(v==yourView){ userTouchedView=true; } } } 
  • Android - Cambiar el texto del botón positivo del diálogo de EditTextPreference mediante programación
  • ¿Cómo evito enfocar el último EditText al navegar desde un Fragment con pestañas?
  • Android, cambia el color subrayado de un EditText dinámicamente
  • ¿Hay una manera de permitir que el usuario seleccione el texto de muchos `EditText`s en una fila (que están en ListView)?
  • ¿Cómo obtener la entrada de texto en lienzo?
  • Android: se centra en EditText después de la selección de Spinner
  • Tipo de letra personalizado
  • Entrada de dinero de Android con decimal fijo
  • Cómo comprobar el estado de visibilidad de EditText en android?
  • Editado Android enfoque automático
  • Cómo agregar TextView y EditText utilizando AlertDialog predeterminado mediante programación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.