後、私は画面に表示され、以下の項目があります:アプリケーションを最初に起動するとアンドロイド - のEditTextにフォーカスを設定スピナー選択
EditText Forename
Spinner gender selection (Male | Female)
EditText Email
、私はフォーカスがForenameのEditTextに設定することにしたいです。その後、Spinnerで "Male"または "Female"を選択した後、 スピナーの下にあるEmail EditTextにフォーカスを設定します。
私はrequestFocus
を電子メールEditTextに設定するために使用しましたが、アプリケーションを起動するたびに にこのEditTextが自動的に設定されるという問題があります。 これは、デフォルトでスピナーがこの場合「男性」である最初の選択肢を表示するため、 は既に選択が行われたと考えて、電子メールフィールドにフォーカスを設定するためです。
デフォルトでスピナーで最初に選択されていた選択を気にすることはありませんが、最初に Forename EditTextに設定するようにrequestFocus
をオーバーライドすることができました。
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/ForenameForm"
android:layout_width="285dp"
android:layout_height="65dp"
android:hint="@string/forenameHint"
android:lines="1"
android:singleLine="true"
android:textSize="20sp" >
</EditText>
<Spinner
android:id="@+id/SpinnerGender"
android:spinnerMode="dialog"
android:textSize="30sp"
android:layout_width="285dp"
android:layout_height="60dp"
android:prompt="@string/spinnerGender"
android:entries="@array/genderList">
</Spinner>
<EditText
android:id="@+id/EmailForm"
android:layout_width="285dp"
android:layout_height="65dp"
android:hint="@string/emailHint"
android:lines="1"
android:singleLine="true"
android:textSize="20sp" >
</EditText>
</LinearLayout>
Activityクラス:どのようにこのソリューションについて
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText forename=(EditText)findViewById(R.id.ForenameForm);
forename.requestFocus();
final EditText email=(EditText)findViewById(R.id.EmailForm);
Spinner spinner=(Spinner)findViewById(R.id.SpinnerGender);
spinner.setFocusable(true);
spinner.setFocusableInTouchMode(true);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
email.requestFocus();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
のようになります!あなたの助けをありがとう、StinePike – Alex
そしてあなたは歓迎です:) – stinepike
それは本当に 'onItemSelected'を扱うAndroidの方法ですか?選択されていないアイテムでアクティビティを開始するにはどうすればよいですか? –