No puedo lograr solicitar Enfocar un Spinner
Tengo un problema molesto con una pantalla. La pantalla consiste en un grupo de Spinners uno debajo del otro, y luego debajo del spinner, un EditText.
El problema es que cuando se inicia la pantalla, EditText tiene el foco, lo que significa que algunos Spinners están fuera de la parte superior de la pantalla. Por más que lo intenté, no puedo hacer que el Spinner superior comience a enfocarse, ya sea usando<requestFocus/>
en la pantalla XML, o usandorequestFocus()
en codigo. He intentado hacer lo querequestFocus omitiendo el siguiente EditText sugiere, 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();
}
}
Tenga en cuenta varios estilos de requestFocus intentado.
¿Es esto un error de plataforma o estoy haciendo algo mal?
Gracias.