Spinner を使ってみた

Spinner は
java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.AdapterView<T extends android.widget.Adapter>
        ↳ android.widget.AbsSpinner
          ↳ android.widget.Spinner
を使用します

というわけで、Spinner をいじってみた

サンプルプログラム
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.util.Log;  
  4. import android.view.View;  
  5. import android.widget.Adapter;  
  6. import android.widget.AdapterView;  
  7. import android.widget.ArrayAdapter;  
  8. import android.widget.Spinner;  
  9.   
  10. public class SpinnerTest extends Activity {  
  11.   Spinner spinner;  
  12.   @Override  
  13.   public void onCreate(Bundle savedInstanceState) {  
  14.     super.onCreate(savedInstanceState);  
  15.     setContentView(R.layout.spinnertest);  
  16.   
  17.     spinner = (Spinner) findViewById(R.id.Spinner01);  
  18.   
  19.     // ArrayAdapter を作成  
  20.     ArrayAdapter<Charsequence> adapter =  
  21.       ArrayAdapter.createFromResource(  
  22.         this,  
  23.         R.array.order,  
  24.         android.R.layout.simple_spinner_item  
  25.       );  
  26.   
  27.     // Adapter のレイアウトを設定  
  28.     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
  29.   
  30.     // Spinner に Adapter を設定  
  31.     spinner.setAdapter(adapter);  
  32.   
  33.     // Spinner に表示させるプロンプトを設定  
  34.     spinner.setPrompt("Spinner Prompt");  
  35.   
  36.     // Spinner の選択されているアイテムを設定  
  37.     int default_item = 0;  // 0 = first, 1 = second,...  
  38.     spinner.setSelection(default_item);  
  39.   
  40.     // Spinner のアイテムが選択された時に呼び出されるコールバックを登録  
  41.     spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
  42.       // アイテムが選択された時の動作  
  43.       public void onItemSelected(AdapterView parent,View view, int position,long id) {  
  44.         // Spinner を取得  
  45.         Spinner spinner = (Spinner) parent;  
  46.   
  47.         // 選択されたアイテムのテキストを取得  
  48.         String str = spinner.getSelectedItem().toString();  
  49.       }  
  50.   
  51.       // 何も選択されなかった時の動作  
  52.       public void onNothingSelected(AdapterView parent) {  
  53.       }  
  54.     });  
  55.   }  
  56. }  
XMLリソース
  1. <Spinner  
  2.   android:id="@+id/Spinner  
  3.   android:layout_width="wrap_content"  
  4.   android:layout_height="wrap_content"">  
  5. </Spinner>  
strings.xml
  1. <string-array name="order">  
  2.   <item>First</item>  
  3.   <item>Second</item>  
  4.   <item>Third</item>  
  5. </string-array>  
プログラムを実行すると


こんな感じ!

ちなみに上と同じものを XML だけで作れます

XMLリソース
  1. <Spinner  
  2.   android:id="@+id/Spinner  
  3.   android:layout_width="wrap_content"  
  4.   android:layout_height="wrap_content"  
  5.   android:entries="@array/order"  
  6.   android:prompt="@string/spinnerprompt">  
  7. </Spinner>  
strings.xml
  1. <string name="spinnerprompt">Spinner Prompt</string>  
リスナーなどの登録だけやればいいからこっちの方がすっきりしますね!


参考サイト
http://developer.android.com/intl/ja/reference/android/widget/Spinner.html

0 件のコメント:

コメントを投稿