Tengo un problema molesto con una pantalla. La pantalla consiste en un montón de Spinners uno debajo del otro, y luego debajo del spinner, un EditText.No puedo arreglármelas para solicitarFocus a Spinner
El problema es que cuando se inicia la pantalla, EditText tiene foco, lo que significa que algunos Spinners están fuera de la parte superior de la pantalla. Por más que lo intente, no puedo hacer que la parte superior de Spinner se enfoque, ya sea usando <requestFocus/>
en la pantalla XML, o usando requestFocus()
en el código. Intenté hacer lo que sugiere requestFocus skipping next EditText, y si sigo la sugerencia correctamente, tampoco funciona.
Para reproducir el problema, cree un nuevo proyecto de Android en Eclipse. main.xml es
<?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="fill_parent">
<Spinner
android:id="@+id/spinner"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<requestFocus />
</Spinner>
<EditText
android:id="@+id/edittext"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
El código de actividad es
package nz.co.kb.testspinner;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
public class TestSpinner extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
View view = getLayoutInflater().inflate(R.layout.main, null);
final View spinner = view.findViewById(R.id.spinner);
view.post(new Runnable() {
public void run() {
spinner.requestFocus();
}
});
setContentView(view);
spinner.requestFocus();
}
}
Nota múltiples estilos de requestFocus intentaron.
¿Es esto un error de plataforma, o estoy haciendo algo mal?
Gracias.
Esta es la respuesta correcta. Aunque no puedo hacer que funcione en el xml. android: focusable = "true" android: focusableInTouchMode = "true" – MinceMan
Funcionó después de agregar 's1..requestFocus();' –