Solución:
ACTUALIZACIÓN 2
@Override
protected void onResume() {
super.onResume();
mUserNameEdit.requestFocus();
mUserNameEdit.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
InputMethodManager keyboard = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(mUserNameEdit, 0);
}
},200); //use 300 to make it run when coming back from lock screen
}
Intenté mucho y encontré una solución … cada vez que comienza una nueva actividad, el teclado no se puede abrir, pero podemos usar Ejecutable en En resumen y está funcionando bien, así que pruebe este código y verifique …
ACTUALIZACIÓN 1
agregue esta línea en su AppLogin.java
mUserNameEdit.requestFocus();
y esta linea en tu AppList.java
listview.requestFocus()'
después de esto, verifique su aplicación si no está funcionando, luego agregue esta línea en su AndroidManifest.xml
expediente
<activity android:name=".AppLogin" android:configChanges="keyboardHidden|orientation"></activity>
<activity android:name=".AppList" android:configChanges="keyboard|orientation"></activity>
RESPUESTA ORIGINAL
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
para ocultar el teclado
imm.hideSoftInputFromWindow(ed.getWindowToken(), 0);
para mostrar el teclado
imm.showSoftInput(ed, 0);
para centrarse en EditText
ed.requestFocus();
donde ed es EditText
Agregando esto a su código android:focusableInTouchMode="true"
se asegurará de que su teclado no aparezca en el inicio de su cuadro de edición de texto. Desea agregar esta línea a su diseño lineal que contiene EditTextBox. Deberías poder jugar con esto para resolver ambos problemas. He probado esto. Solución simple.
es decir: en su archivo app_list_view.xml
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:focusableInTouchMode="true">
<EditText
android:id="@+id/filter_edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Search"
android:inputType="text"
android:maxLines="1"/>
<ListView
android:id="@id/android:list"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:layout_width="fill_parent"
android:focusable="true"
android:descendantFocusability="beforeDescendants"/>
</LinearLayout>
—————— EDITAR: Para hacer que el teclado aparezca al iniciar ———————–
Esto es para que el teclado aparezca en el cuadro de texto de edición de nombre de usuario al inicio. Todo lo que he hecho es agregar una vista de desplazamiento vacía al final del archivo .xml, esto pone el primer texto de edición en foco y aparece el teclado. Admito que esto es un truco, pero supongo que solo quieres que esto funcione. Lo he probado y funciona bien.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dip"
android:paddingRight="20dip">
<EditText
android:id="@+id/userName"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Username"
android:imeOptions="actionDone"
android:inputType="text"
android:maxLines="1"
/>
<EditText
android:id="@+id/password"
android:password="true"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Password" />
<ScrollView
android:id="@+id/ScrollView01"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
</ScrollView>
</LinearLayout>
Si está buscando una solución más elocuente, encontré esta pregunta que podría ayudarlo, no es tan simple como la solución anterior, pero probablemente sea una mejor solución. No lo he probado pero aparentemente funciona. Creo que es similar a la solución que has probado y que no te funcionó.
Espero que esto sea lo que estás buscando.
¡Salud!
Prueba este código.
Para mostrar el teclado programable:
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
if(imm != null){
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
}
Para ocultar SoftKeyboard –
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
if(imm != null){
imm.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY);
}