android - porque - Deshabilitar el enfoque automático en editar texto
porque mi camara digital no enfoca (8)
Tengo un texto de edición:
<LinearLayout android:id="@+id/linearLayout7" android:layout_width="match_parent" android:layout_height="wrap_content">
<EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1" android:id="@+id/editText1" android:text="3">
<requestFocus></requestFocus>
</EditText>
<Button android:text="Button" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button2"></Button>
</LinearLayout>
y algunas otras cosas debajo
El problema que tengo es que, cuando la aplicación comienza, el foco está en la entrada, no quiero que el foco esté en la entrada correcta cuando se inicia la aplicación.
Traté de eliminar el
<requestFocus></requestFocus>
cosa y no hizo nada.
Agregue los elementos android:focusable="true"
y android:focusableInTouchMode="true"
en el diseño principal de EditText siguiente manera;
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout7" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true" android:focusableInTouchMode="true">
Creo que debería ayudarte.
NO más trabajo ... solo agregue Android: windowSoftInputMode = "stateAlwaysHidden" a la etiqueta de actividad del archivo Manifest.xml.
Puede usar el modo de entrada de ventana suave oculto para ocultar el teclado y android:focusable="false"
y android:focusableInTouchMode="true"
<activity
android:name=".MainActivity"
android:windowSoftInputMode="stateHidden"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Si desea borrar el enfoque predeterminado en el texto de edición, utilice los siguientes 2 atributos
android:focusable="false"
android:focusableInTouchMode="true"
dentro del diseño Linear padre.
por ejemplo:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="true"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="email id"
android:inputType="textEmailAddress"
android:maxLines="1"
/>
</LinearLayout>
Si desea ocultar el teclado en la creación de actividades, use estos atributos dentro de la etiqueta de actividad del archivo de manifiesto, por ejemplo:
<activity
android:configChanges="screenSize|orientation|keyboardHidden"
android:screenOrientation="portrait"
android:name=".activities.LoginActivity"
android:windowSoftInputMode="stateHidden|adjustResize"/>
Si desea ocultar el teclado en el botón, haga clic o en algún evento que ocurra use el siguiente código
public void onClick(View v) {
try {
//InputMethodManager is used to hide the virtual keyboard from the user after finishing the user input
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isAcceptingText()) {
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
} catch (NullPointerException e) {
Log.e("Exception", e.getMessage() + ">>");
}
}
} catch (NullPointerException e) {
Log.e("Exception", e.getMessage() + ">>");
}
Si desea quitar el foco de los campos de edición de texto después de abandonar la actividad
@Override
protected void onResume() {
super.onResume();
mEmail.clearFocus();
mPassword.clearFocus();
}
Y finalmente, si desea borrar los datos en los campos de edición de texto al enviar el formulario, use
@Override
protected void onResume() {
super.onResume();
mEmail.getText().clear();
mPassword.getText().clear();
}
Simplemente agregue lo siguiente a su etiqueta principal de vista de diseño xml:
android:focusableInTouchMode="true"
Hei ,
Hay varias formas de hacer esto, ha dado una manera de hacerlo.
Si la idea no funciona, entonces haz algo simple:
En su AndroidManifest>Activity
agregue este código simple:
android:windowSoftInputMode="stateHidden"
No es necesario hacer nada en EditText en XML, todo estará funcionando y no aparecerá ningún foco.
Mire el código de ejemplo de la vida real:
<activity
android:name=".MainActivity"
android:windowSoftInputMode="stateHidden"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<EditText
android:id="@+id/input"
android:layout_width="0dp"
android:layout_height="48dp"
android:focusable="false"
android:focusableInTouchMode="false" />
detailInputView = (EditText) debugToolsView.findViewById(R.id.input);
detailInputView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
detailInputView.setFocusable(true);
detailInputView.setFocusableInTouchMode(true);
return false;
}
});
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px" />
<EditText android:text=""
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/hint">
</EditText>
No se necesita otra codificación, es una solución simple y clara.