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 をいじってみた
サンプルプログラム
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.Adapter;
- import android.widget.AdapterView;
- import android.widget.ArrayAdapter;
- import android.widget.Spinner;
-
- public class SpinnerTest extends Activity {
- Spinner spinner;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.spinnertest);
-
- spinner = (Spinner) findViewById(R.id.Spinner01);
-
-
- ArrayAdapter<Charsequence> adapter =
- ArrayAdapter.createFromResource(
- this,
- R.array.order,
- android.R.layout.simple_spinner_item
- );
-
-
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-
-
- spinner.setAdapter(adapter);
-
-
- spinner.setPrompt("Spinner Prompt");
-
-
- int default_item = 0;
- spinner.setSelection(default_item);
-
-
- spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
-
- public void onItemSelected(AdapterView parent,View view, int position,long id) {
-
- Spinner spinner = (Spinner) parent;
-
-
- String str = spinner.getSelectedItem().toString();
- }
-
-
- public void onNothingSelected(AdapterView parent) {
- }
- });
- }
- }
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class SpinnerTest extends Activity {
Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spinnertest);
spinner = (Spinner) findViewById(R.id.Spinner01);
// ArrayAdapter を作成
ArrayAdapter<Charsequence> adapter =
ArrayAdapter.createFromResource(
this,
R.array.order,
android.R.layout.simple_spinner_item
);
// Adapter のレイアウトを設定
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Spinner に Adapter を設定
spinner.setAdapter(adapter);
// Spinner に表示させるプロンプトを設定
spinner.setPrompt("Spinner Prompt");
// Spinner の選択されているアイテムを設定
int default_item = 0; // 0 = first, 1 = second,...
spinner.setSelection(default_item);
// Spinner のアイテムが選択された時に呼び出されるコールバックを登録
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
// アイテムが選択された時の動作
public void onItemSelected(AdapterView parent,View view, int position,long id) {
// Spinner を取得
Spinner spinner = (Spinner) parent;
// 選択されたアイテムのテキストを取得
String str = spinner.getSelectedItem().toString();
}
// 何も選択されなかった時の動作
public void onNothingSelected(AdapterView parent) {
}
});
}
}
XMLリソース
- <Spinner
- android:id="@+id/Spinner
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"">
- </Spinner>
<Spinner
android:id="@+id/Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"">
</Spinner>
strings.xml
- <string-array name="order">
- <item>First</item>
- <item>Second</item>
- <item>Third</item>
- </string-array>
<string-array name="order">
<item>First</item>
<item>Second</item>
<item>Third</item>
</string-array>
プログラムを実行すると
こんな感じ!
ちなみに上と同じものを XML だけで作れます
XMLリソース
- <Spinner
- android:id="@+id/Spinner
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:entries="@array/order"
- android:prompt="@string/spinnerprompt">
- </Spinner>
<Spinner
android:id="@+id/Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/order"
android:prompt="@string/spinnerprompt">
</Spinner>
strings.xml
- <string name="spinnerprompt">Spinner Prompt</string>
<string name="spinnerprompt">Spinner Prompt</string>
リスナーなどの登録だけやればいいからこっちの方がすっきりしますね!
参考サイト
http://developer.android.com/intl/ja/reference/android/widget/Spinner.html