Spinner | Android Developers
http://developer.android.com/intl/ja/resources/tutorials/views/hello-spinner.html
JavaScriptのセレクトオブジェクト、C#等のコンボボックスですね。HelloSpinnerというプロジェクトを作成します。
res/layout/main.xmlを開き、以下のように変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <? xml version = "1.0" encoding = "utf-8" ?> < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:orientation = "vertical" android:padding = "10dip" android:layout_width = "match_parent" android:layout_height = "wrap_content" > < TextView android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_marginTop = "10dip" android:text = "@string/planet_prompt" /> < Spinner android:id = "@+id/spinner" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:prompt = "@string/planet_prompt" /> </ LinearLayout > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <? xml version = "1.0" encoding = "utf-8" ?> < resources > < string name = "hello" >Hello World, HelloSpinnerActivity!</ string > < string name = "app_name" >HelloSpinner</ string > < string name = "planet_prompt" >Choose a planet</ string > < string-array name = "planets_array" > < item >Mercury</ item > < item >Venus</ item > < item >Earth</ item > < item >Mars</ item > < item >Jupiter</ item > < item >Saturn</ item > < item >Uranus</ item > < item >Neptune</ item > </ string-array > </ resources > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | package jp.blogspot.logroid.helloSpinner; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.Spinner; public class HelloSpinnerActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this , R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | package jp.blogspot.logroid.helloSpinner; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.Toast; public class HelloSpinnerActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this , R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); } public class MyOnItemSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { Toast.makeText(parent.getContext(), "The planet is " + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); } public void onNothingSelected( @SuppressWarnings ( "rawtypes" ) AdapterView parent) { // Do nothing. } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | package jp.blogspot.logroid.helloSpinner; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.Toast; public class HelloSpinnerActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this , R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener( new MyOnItemSelectedListener()); } public class MyOnItemSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { Toast.makeText(parent.getContext(), "The planet is " + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); } public void onNothingSelected( @SuppressWarnings ( "rawtypes" ) AdapterView parent) { // Do nothing. } } } |

- Spenner
JavaScriptでのセレクトオブジェクト、C#でのコンボボックス
- setDropDownViewResource
Spennerで表示されるビューを指定
- simple_spinner_dropdown_item
Androidで定義されているレイアウトファイルのID setDropDownViewResourceにセットすると、項目の隣にラジオボタンのようなオブジェクトが表示される
- setOnItemSelectedListener
Spennerのアイテムがセレクトされた際のイベントリスナ登録
- getItemAtPosition
選択されたビューの取得
- @SuppressWarnings
Javaのアノテーション parentがraw型とのことで、警告が発生したため、@SuppressWarnings("rawtypes")を追記。 これで警告を無効化できます。
0 件のコメント:
コメントを投稿