mucchinのAndroid戦記

Androidアプリで、起動後最初にカーソルを当てるViewを指定する方法

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にフォーカスが当たっています。
Androidアプリで、起動後最初にカーソルを当てるViewを指定する方法


スポンサーリンク

URL :
TRACKBACK URL :

Comments & Trackbacks

  • Comments ( 2 )
  • Trackbacks ( 0 )
  1. ありがとうございます!! この記事で1週間ちかく悩んでいた問題が解決できました! 涙

    多謝!!!!!

  2. このサイトで、初めてそういうコメントを頂きました!
    お役に立てて何よりです。
    私も嬉しいです。
    Android関連で、何か他に抱えておられる疑問等がありましたら、ページ上部の問い合わせリンクより、私宛にメールも送ることができますので、なんなりと聞いてください!
    といっても、、、私がわかるかどうかは保証できないですケド・・・。

Leave a Reply

*
*
* (公開されません)

CAPTCHA


*

Return Top