Cómo forzar el enfoque para editar el texto

He leído alrededor de las preguntas sobre cómo establecer un objeto para centrarse sin embargo no puedo encontrar una respuesta a lo que estoy tratando de hacer.

Usando el On Focus Listener He hecho lo siguiente:

Ehour.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View arg0, boolean arg1) { // TODO Auto-generated method stub if (!arg1) { if (Ehour.getText().length()<=0) { Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show(); Calendar nohour = Calendar.getInstance(); Ehour.setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY))); Ehour.setFocusable(true); Ehour.requestFocus(); } } }}); 

He probado las sugerencias de los siguientes mensajes:

He leído este post, pero el uso de estas sugerencias, así que no parecen funcionar: ¿Cómo establecer el enfoque en una vista cuando se crea un diseño y se muestra?

Mi objetivo es que cuando se pierda el foco del texto de edición, necesite volver a él si la entrada dada no es válida.

Además, según la sugerencia dada por Bill Mote, también he intentado:

  Ehour.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View arg0, boolean arg1) { // TODO Auto-generated method stub if (!arg1) { if (Ehour.getText().length()<=0) { Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show(); Calendar nohour = Calendar.getInstance(); Ehour.setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY))); ((EditText)arg0).requestFocus(); } } }}); 

** EDIT ** Incluso agregué la línea abajo antes del requestFocus ():

 ((EditText)arg0).setFocusable(true); 

*** EDIT ****

Intentado de esta publicación: Detener EditText de ganar foco en inicio de actividad

Los siguientes cambios: En el diseño en el primer encabezado de diseño agregé:

 android:id="@+id/enterdata" android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true" 

Luego en el OnChangeFocusListener hice esto:

 Ehour.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View arg0, boolean arg1) { // TODO Auto-generated method stub if (!arg1) { if (((EditText)arg0).getText().length()<=0) { Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show(); Calendar nohour = Calendar.getInstance(); ((EditText)arg0).setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY))); findViewById(R.id.enterdata).requestFocus(); ((EditText)arg0).setFocusable(true); ((EditText)arg0).setFocusableInTouchMode(true); ((EditText)arg0).requestFocus(); } } }}); 

Sin embargo todavía consigo el mismo comportamiento que antes, el texto de la edición que el foco va a permanece esa manera pero el texto de la edición que quisiera que el foco vaya a mira enfocado pero no puede parecer ser utilizado como si todavía está esperando ser Enfocado

*** EDIT ****

Código abajo como por puesto reciente encontrado en stackoverflow donde el usuario que hizo la pregunta está experimentando el mismo problema que yo:

  Ehour.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View arg0, boolean arg1) { // TODO Auto-generated method stub if (!arg1) { if (((EditText)arg0).getText().length()<=0) { Calendar nohour = Calendar.getInstance(); ((EditText)arg0).setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY))); if (((EditText)arg0).requestFocus()) { getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); Emin.clearFocus(); Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show(); } } } }}); 

Prueba arg0.requestFocus() .

No estoy seguro de si View implementa requestFocus() en la parte superior de mi cabeza por lo que podría tener que lanzarla … ((EditText) arg0).requestFocus() .

 new OnEditorActionListener(){ @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { editText.requestFocus(); //used ******* return true ****** return **true**; } } 

Tuve este mismo problema, aquí el código que solía resolver:

 EditText editText = (EditText) findViewById(R.id.myTextViewId); editText.requestFocus(); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); 

Atentamente,

  • En Android, ¿cuál es realmente el uso para enfocar el parámetro de área de peso?
  • Android EditText AutoFocus al próximo EditText cuando está en maxlength
  • Toque fuera de edittext para perder el foco
  • Eclipse editText eliminar el foco (cursor) cuando se hace presionado
  • El enfoque aleatoriamente salta al desplazarse
  • No se puede administrar a requestFocus a Spinner
  • Android: Force EditText para eliminar el enfoque?
  • Mover Android Edittext un poco hacia arriba cuando se centran en él
  • RequestFocus saltando siguiente EditText
  • Deshabilitar temporalmente EditText
  • foco perdido después de notifyDataSetChanged ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.