Не удается выполнить запросFocus Spinner

У меня есть раздражающая проблема с экраном. Экран состоит из кучки спиннеров один под другим, а затем под spinner, EditText.

Проблема в том, что при запуске экрана EditText имеет фокус, а это означает, что некоторые Spinners находятся в верхней части экрана. Попытайтесь, как я мог, я не могу заставить топ Spinner сфокусироваться, используя <requestFocus/> на экране XML или используя requestFocus() в коде. Я попытался сделать то, что requestFocus пропустил, следующий из EditText предлагает, и если я правильно следую рекомендациям, это тоже не сработает.

Чтобы воспроизвести проблему, создайте новый проект Android в Eclipse. Main.xml –

 <?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> 

Код активности

 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(); } } 

Обратите внимание на несколько стилей requestFocus.

Это ошибка платформы, или я делаю что-то неправильно?

Благодарю.

Solutions Collecting From Web of "Не удается выполнить запросFocus Spinner"

Из онлайн- документации :

Вид не будет на самом деле фокусироваться, если он не фокусируется (isFocusable () возвращает false), или если он фокусируется и не фокусируется в сенсорном режиме (isFocusableInTouchMode ()), когда устройство находится в режиме касания.

У меня была аналогичная проблема, я решил, выполнив две вещи:

1) Я установил объект Spinner сверху (внутри метода onCreate), чтобы убедиться, что мой код сначала выполняется. 2) Я использовал следующее:

Spinner s1 = (Spinner) findViewById (R.id.spinner1); s1.setFocusable (истина); s1.setFocusableInTouchMode (истина);

Дайте мне знать, если это поможет или вам нужна дальнейшая помощь.