Androidアプリで、起動後一番最初にカーソル(フォーカス)を当てるViewを指定する方法は?
例えば、以下のような画面があったとします。
TextView、EditText一つ目、Button、EditText二つ目が配置されているような画面。
(どんなアプリだ!という突っ込みは無しです。(笑))
上の例ですと、何も考えずに配置すると、起動時は一つ目のEditTextにフォーカスがあたります。
これを二つ目のEditTextにフォーカスを当てるという設定をする方法をご紹介します。
今回のような画面レイアウトですと、レイアウト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”
>
<TextView
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”@string/hello”
/>
<EditText
android:id=”@+id/EditText01″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
></EditText>
<Button
android:text=”@+id/Button01″
android:id=”@+id/Button01″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”>
</Button>
<EditText
android:id=”@+id/EditText02″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
></EditText>
</LinearLayout>
このレイアウト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”
>
<TextView
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”@string/hello”
/>
<EditText
android:id=”@+id/EditText01″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
></EditText>
<Button
android:text=”@+id/Button01″
android:id=”@+id/Button01″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”>
</Button>
<EditText
android:id=”@+id/EditText02″
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
><requestFocus/></EditText>
</LinearLayout>
スポンサーリンク
フォーカスを当てたいViewに、requestFocusタグを付けるだけです。
Eclipseで簡単に設定する、という事は出来ないみたいでした。
手書きで追記してください。
上の例をよく見て、付ける場所に注意してください。
あとは、頭文字を小文字にする、という事も注意してください。
注意点はこれぐらいですかね。
ちなみに、requestFocusを設定していない場合の動作は、特に既定されていないらしいです。
既定されていない、という事は、自分で設定しておく事が望ましいでしょうね。
起動すると、下の画像のように、下側のEditTextにフォーカスが当たっています。
ありがとうございます!! この記事で1週間ちかく悩んでいた問題が解決できました! 涙
多謝!!!!!
このサイトで、初めてそういうコメントを頂きました!
お役に立てて何よりです。
私も嬉しいです。
Android関連で、何か他に抱えておられる疑問等がありましたら、ページ上部の問い合わせリンクより、私宛にメールも送ることができますので、なんなりと聞いてください!
といっても、、、私がわかるかどうかは保証できないですケド・・・。