mucchinのAndroid戦記

Spinnerの一番簡単な使い方

Spinnerって、簡単に選択肢を設定できないの?

AndroidアプリのSpinnerというView(ビュー)があります。
Spinnerというのは、VB等のコントロールで言うところのコンボボックスにあたるものです。
プルダウン形式のメニューですね。
選択肢が静的で、あらかじめどんな選択肢を設定するのか決まっていて、固定でいい場合があるかと思います。
色んなサイトを見ましたが、どのサイトも、結構ややこしいコードを説明してるように見えました。
あらかじめ、選択肢がわかってるのに、なんでこんなややこしいの??
って感じました。
という事で、Eclipseを色々触っていたら、めちゃくちゃ簡単に設定する方法を見つけましたので、紹介します。


選択肢が静的、固定でいいとあらかじめわかっているなら、コードを1行も書かなくて済みます。
今回紹介する方法は、以下のAndroidの基本的な知識があるという前提で話を進めます。
・Androidアプリ内で使用する文字列は、基本的にはres/valuesのstrings.xmlへ追加して使う、という事
・レイアウトにSpinnerを配置する方法

以下がSpinnerの選択肢の設定手順です。Eclipseで簡単に出来ます。
1.res/values/strings.xmlをAndroid Resource Editorで開く。(通常は関連付けられているので、ダブルクリックでOKです。)
 以下の画面が表示されます。
Spinnerの一番簡単な使い方
2.Addボタン(上画像の赤枠部分)を押す。以下の画面が表示されます。
Spinnerの一番簡単な使い方

3.「String Array」という要素を追加する。追加すると、以下の赤枠部分が追加されたと思います。
Spinnerの一番簡単な使い方
緑で囲んでいるNameに、適当な名前を付けます。

4.追加したString Arrayの子要素に「Item」を追加します。
下図のように、追加したString Arrayを右クリック⇒Addを選らんでください。
Spinnerの一番簡単な使い方
そうすると、以下の画面が表示されます。
Spinnerの一番簡単な使い方
Itemを選択してOKを押します。すると下図のようにItemが追加されます。
Spinnerの一番簡単な使い方

5.追加したItemに、設定したい選択肢の文字列を設定する。(上図の赤枠部分)

6.設定したい選択肢の数だけ、4、5を繰り返す。
ここまでで選択肢用の文字列の定義は完了です。


スポンサーリンク




次にSpinnerへの設定です。
1.Android Layout Editorで、選択肢を設定したいSpinnerがあるレイアウトのxmlを開く。
2.Spinnerを選択する。
3.propertiesウィンドウで、「Entries」を選択する。
下図のような感じです。
Spinnerの一番簡単な使い方
4.Value欄の右側にボタン(上記画像の赤枠部分)が出てくるので、押す。
5.「Array」を展開して、最初の手順で作ったString ArrayのIDが出てるはずなので、そいつを選択する。
Spinnerの一番簡単な使い方
で、終わりです。
コードは一切いじらなくてOK。
実際動かすと、以下のような感じになります。
Spinnerの一番簡単な使い方
このレイアウトで問題なければ、OKです。
レイアウトをカスタマイズしたい場合は、、、頑張ってください。


ちなみに、上の手順で設定したXMLの中身は以下のようになってます。
選択肢用の文字列の配列
<string-array name=”sentakushi”>
<item>選択肢1</item>
<item>選択肢2</item>
<item>選択肢3</item>
</string-array>

選択肢を設定済みのSpinner
<Spinner android:layout_height=”wrap_content” android:layout_width=”wrap_content” android:entries=”@array/sentakushi” android:id=”@+id/Spinner01″></Spinner>


スポンサーリンク

URL :
TRACKBACK URL :

Comments & Trackbacks

  • Comments ( 7 )
  • Trackbacks ( 0 )
  1. はじめまして。
    JAVA、ANDROIDと40半ばで最近はじめた新参者です。
    色々やっている内に、XMLを知り、コレは便利?と
    飛びつくも、エミュレーターでERROR、反映されません。
    XMLで作ったファイルを、エミュレーター → 実機
    で反映させるためにはJAVAソースで何か必要だと思うのですが
    その事がさっぱり分からずです。
    色々探すのですが、何処にもそれらしき記載が無いため
    mucchinさんの真摯なコメント対応にすがりたく、こちらから
    お願いさせていただきます。
    上記ファイルも見事にERRORでした。
    よろしくお願いいたします。

  2. Jimmyです。
    もう一度。作り直したらエミュレーターで
    うまく反映されました。
    しかし、XMLに対する疑問が未だ解けません。
    JAVA本体のソースは
    setContentView(R.layout.main);
    コレが入っていれば、mainのXMLは使える?
    ということでしょうか?
    うーーーーん。よく分からない。
    よろしくお願いします。

  3. コメントを何度か読みなおさせて頂いているのですが、ご質問の内容が理解できません。
    XMLのどういう点に、どのような疑問点があるのでしょうか。
    申し訳ありませんが、疑問点をブレイクダウンして記述して頂けませんでしょうか。

  4. 非常に簡潔でわかりやすい説明をありがとうございました。
    目から鱗的な情報でした。
    またSpineer以外にListViewでも同じ方法で表示することが出来ました。
    XMLのみですとFontSizeが指定できないっ様なのですが、もしご存知でしたらご教授いただけますと幸いです。

  5. コメントありがとうございます。
    XMLのみでのフォントの調整ですが、色々調べたり試したりしましたが、上手くいきませんでした。
    Spinnerには、「Style」というプロパティを持っていたので、文字のスタイルを定義したXMLを作成して、そのスタイルを指定してみたのですが、見かけは変わりませんでした。
    おそらくこのプロパティは、Spinner自体のスタイルの事であって、中身の選択肢のスタイルを司るものではないのかもしれません。
    やはり、選択肢の文字のスタイルをカスタムしたいのであれば、Adapterを使って少々手間を掛ける必要がありそうです。
    ご存じかもしれませんが、以下のURLが参考になりそうです。
    http://wikiwiki.jp/android/?Spinner%20UI%A4%CE%A5%AB%A5%B9%A5%BF%A5%DE%A5%A4%A5%BA

    選択肢のフォントサイズぐらい、簡単に設定できればいいんですがね…。

  6. このサイトのほうが3800円の本よりわかりやすいですけどw

  7. 嬉しいコメント、どーもです!

Leave a Reply

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

CAPTCHA


*

Return Top