Androidスピナー(ドロップダウンリスト)の例
Androidでは、「http://developer.android.com/reference/android/widget/Spinner.html[android.widget.Spinner]」クラスを使用して、ドロップダウンボックスの選択リストをレンダリングできます。
Note
Spinnerは、アイテムを選択するためのドロップダウンリストに似たウィジェットです。
このチュートリアルでは、次のタスクを実行する方法を示します。
-
スピナーをXMLでレンダリングし、XMLファイルを介して選択項目もロードします。
-
別のSpinnerをXMLでレンダリングし、コードを介して選択項目を動的に読み込みます。
-
Spinnerにリスナーを接続し、ユーザーがSpinnerで値を選択したときに起動します。
-
通常のボタンにリスナーをレンダリングしてアタッチし、ユーザーがクリックすると起動し、選択したスピナーの値を表示します。
P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.
1. スピナーのアイテムのリスト
「res/values/strings.xml」ファイルを開き、スピナーに表示されるアイテムのリスト(ドロップダウンリスト)を定義します。
ファイル:res / values / strings.xml
MyAndroidApp Choose a country - Malaysia
- United States
- Indonesia
- France
- Italy
- Singapore
- New Zealand
- India
2. スピナー(ドロップダウンリスト)
「res/layout/main.xml」ファイルを開き、2つのスピナーコンポーネントと1つのボタンを追加します。
-
「spinner1」では、「
android:entries
」はスピナーの選択項目を表します。 -
「spinner2」では、選択項目は後でコードで定義されます。
ファイル:res / layout / main.xml
3. コードコード
コードとコードのコメントを読んでください、それは一目瞭然です。
ファイル:MyAndroidAppActivity.java
package com.example.android; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Spinner; import android.widget.Toast; public class MyAndroidAppActivity extends Activity { private Spinner spinner1, spinner2; private Button btnSubmit; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); addItemsOnSpinner2(); addListenerOnButton(); addListenerOnSpinnerItemSelection(); } // add items into spinner dynamically public void addItemsOnSpinner2() { spinner2 = (Spinner) findViewById(R.id.spinner2); Listlist = new ArrayList (); list.add("list 1"); list.add("list 2"); list.add("list 3"); ArrayAdapter dataAdapter = new ArrayAdapter (this, android.R.layout.simple_spinner_item, list); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner2.setAdapter(dataAdapter); } public void addListenerOnSpinnerItemSelection() { spinner1 = (Spinner) findViewById(R.id.spinner1); spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener()); } // get the selected dropdown list value public void addListenerOnButton() { spinner1 = (Spinner) findViewById(R.id.spinner1); spinner2 = (Spinner) findViewById(R.id.spinner2); btnSubmit = (Button) findViewById(R.id.btnSubmit); btnSubmit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MyAndroidAppActivity.this, "OnClickListener : " + "\nSpinner 1 : "+ String.valueOf(spinner1.getSelectedItem()) + "\nSpinner 2 : "+ String.valueOf(spinner2.getSelectedItem()), Toast.LENGTH_SHORT).show(); } }); } }
ファイル:CustomOnItemSelectedListener.java
package com.example.android; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.Toast; public class CustomOnItemSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView> parent, View view, int pos,long id) { Toast.makeText(parent.getContext(), "OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView> arg0) { // TODO Auto-generated method stub } }
4. Demo
アプリケーションを実行してください。
1. 結果、2つのスピナーが表示されます。
2. spinner1から「フランス」を選択し、アイテム選択リスナーが起動されます。
3. spinner2から「list2」を選択し、送信ボタンをクリックします。
ソースコードをダウンロード
ダウンロード–Android-Spinner-DropDownList-Example.zip(16 KB)