Cómo quitar el foco de solo editText

Posible duplicado:
Detener EditText de ganar foco en inicio de actividad?

En mi aplicación tengo un solo EditText junto con algunos TextViews, botón y un hilandero. Mi EditText recibe el foco puesto que es la única visión focusable en esta actividad, creo. Mi EditText muestra con un borde naranja y el cursor en el campo.
Ahora quisiera quitar el foco de este campo (no quiero que el cursor y el borde muestren). ¿Hay alguna forma de hacer esto?
He podido enfocar el botón haciendo button.seFocusableInTouchMode () y button.requestFocus (). Pero esto destaca el botón y obviamente no es lo que quiero.

Compruebe esta pregunta y la respuesta seleccionada: Stop EditText de ganar foco en el inicio de actividad Es feo, pero funciona, y por lo que sé no hay mejor solución.

¿Intentaste usar el viejo buen View.clearFocus()

Nuevo en android

 getWindow().getDecorView().clearFocus(); 

Funciona para mí .. amablemente corregirme si hay algo mal 🙂

Sólo para añadir .. su diseño debe tener:

  android:focusable="true" android:focusableInTouchMode="true" 

Utilice el código adjunto para darle el enfoque a "alguien más", esto está bien si usted tiene una vista en la que simplemente desea descartar el teclado y liberar el enfoque, realmente no le importa quién lo consigue.

Utilice de esta manera: FocusHelper.releaseFocus (viewToReleaseFocusFrom)

 public class FocusHelper { public static void releaseFocus(View view) { ViewParent parent = view.getParent(); ViewGroup group = null; View child = null; while (parent != null) { if (parent instanceof ViewGroup) { group = (ViewGroup) parent; for (int i = 0; i < group.getChildCount(); i++) { child = group.getChildAt(i); if(child != view && child.isFocusable()) child.requestFocus(); } } parent = parent.getParent(); } } } 

Doc: El método se desplaza desde la vista secundaria y hasta el árbol de vista y busca el primer hijo para darle enfoque.

Editar: También puede utilizar la API para esto:

 View focusableView = v.focusSearch(View.FOCUS_DOWN); if(focusableView != null) focusableView.requestFocus(); 

Sé que es demasiado tarde, pero para alguien whit la misma necesidad editText.setFocusable (false) si lo que está buscando.

Tuve un problema similar con el editText, que ganó el foco desde que se inició la actividad. Este problema lo arreglé fácilmente como esto:

Usted agrega este pedazo de código en la disposición que contiene el editText en xml:

  android:id="@+id/linearlayout" android:focusableInTouchMode="true" 

No olvide el android:id , sin él tengo un error.

El otro problema que tuve con el editText es que una vez que gane el primer foco, el enfoque nunca desapareció. Este es un pedazo de mi código en java, tiene un editText y un botón que captura el texto en el editText:

  editText=(EditText) findViewById(R.id.et1); tvhome= (TextView)findViewById(R.id.tv_home); etBtn= (Button) findViewById(R.id.btn_homeadd); etBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tvhome.setText( editText.getText().toString() ); //** this code is for hiding the keyboard after pressing the button View view = Settings.this.getCurrentFocus(); if (view != null) { InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } //** editText.getText().clear();//clears the text editText.setFocusable(false);//disables the focus of the editText Log.i("onCreate().Button.onClickListener()", "et.isfocused= "+editText.isFocused()); } }); editText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(v.getId() == R.id.et1) { v.setFocusableInTouchMode(true);// when the editText is clicked it will gain focus again //** this code is for enabling the keyboard at the first click on the editText if(v.isFocused())//the code is optional, because at the second click the keyboard shows by itself { InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(v, InputMethodManager.SHOW_IMPLICIT); } //** Log.i("onCreate().EditText.onClickListener()", "et.isfocused= "+v.isFocused()); } else Log.i("onCreate().EditText.onClickListener()", "the listener did'nt consume the event"); } }); 

Espero que ayude a algunos de ustedes!

Basta con encontrar otra vista y darle enfoque en su lugar.

 var refresher = FindViewById<MvxSwipeRefreshLayout>(Resource.Id.refresher); refresher.RequestFocus(); 

Incluya esta línea

 android:selectAllOnFocus="false" 

En el segmento XML correspondiente al diseño de EditText.

Sólo tienes que borrar el enfoque de la vista como

 EditText.clearFocus() 

Si entiendo su pregunta correctamente, esto debería ayudarle:

 TextView tv1 = (TextView) findViewById(R.id.tv1); tv1 .setFocusable(false); 

Ya que estaba en un widget y no en una actividad que hice:

`GetRootView (). ClearFocus ();

Voy a tratar de explicar cómo quitar el foco (cursor parpadeante) de la vista EditText con algunos más detalles y la comprensión. Normalmente esta línea de código debería funcionar

 editText.clearFocus() 

Pero podría ser situación cuando el editText todavía tiene el foco, y esto está sucediendo porque el método de clearFocus () está intentando fijar el foco de nuevo a la primera visión focusable en la disposición de la actividad / del fragmento.

Por lo tanto, si sólo tiene una vista en la actividad que se puede enfocar, y ésta suele ser la vista EditarTexto, entonces clearFocus () volverá a establecer el foco en esa vista y para usted parecerá que clearFocus () no funciona. Recuerde que las vistas de EditarTexto se pueden enfocar (true) de forma predeterminada, así que si sólo tiene una vista EditarTexto dentro de su diseño, siempre obtendrá el foco en la pantalla. En este caso su solución será encontrar la vista padre (algún layout, ex LinearLayout, Framelayout) dentro de su archivo de diseño y establecer en él este código xml

 android:focusable="true" android:focusableInTouchMode="true" 

Después de que cuando ejecute editText.clearFocus () la vista principal dentro de su diseño aceptará el enfoque y su editText estará libre de foco.

Espero que esto ayude a alguien a entender cómo clearFocus () está funcionando.

He intentado mucho para borrar el foco de un texto de edición. Clearfocus () y focusable y otras cosas nunca funcionaron para mí. Así que se me ocurrió la idea de dejar que un enfoque de ganancia edittext falso:

 <LinearLayout ... android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout ... android:layout_width="match_parent" android:layout_height="match_parent"> <!--here comes your stuff--> </LinearLayout> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/fake" android:textSize="1sp"/> </LinearLayout> 

Entonces en tu código java:

 View view = Activity.this.getCurrentFocus(); if (view != null) { InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); fake.requestFocus(); } 

Se oculta el teclado y eliminar el foco de cualquier edittext que lo tiene. Y también como se ve el edittext falso está fuera de la pantalla y no se puede ver

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