「Android/UIプルダウン」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→データをxmlで定義する場合) |
|||
(同じ利用者による、間の8版が非表示) | |||
行1: | 行1: | ||
==プルダウンサンプル== | ==プルダウンサンプル== | ||
+ | Spinnerクラスを使う | ||
MainActivity.java | MainActivity.java | ||
<pre> | <pre> | ||
− | + | ArrayAdapter<String> adapter = new ArrayAdapter<>( | |
− | + | this, | |
− | + | android.R.layout.simple_spinner_item, | |
− | + | new String[] { | |
− | + | "test1", | |
− | + | "test2", | |
− | + | "test3", | |
− | + | "test4"} | |
− | + | ); | |
− | + | adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); | |
− | + | Spinner spinner = findViewById(R.id.sizelist); | |
− | + | spinner.setAdapter(adapter); | |
− | + | spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { | |
− | + | @Override | |
− | + | public void onItemSelected(AdapterView<?> parent, | |
− | + | View view, int position, long id) { | |
− | + | Spinner spinner = (Spinner)parent; | |
− | + | String item = (String)spinner.getSelectedItem(); | |
− | + | //textView.setText(item); | |
− | + | } | |
− | + | public void onNothingSelected(AdapterView<?> parent) { | |
− | + | // | |
− | + | } | |
− | + | }); | |
− | + | ||
</pre> | </pre> | ||
main_activity.xml | main_activity.xml | ||
<pre> | <pre> | ||
− | + | <Spinner | |
android:id="@+id/sizelist" | android:id="@+id/sizelist" | ||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||
行42: | 行42: | ||
参考:http://d.hatena.ne.jp/nkawamura/20131005/1380963701 | 参考:http://d.hatena.ne.jp/nkawamura/20131005/1380963701 | ||
+ | |||
+ | ==デフォの値を設定する場合== | ||
+ | // 設定 | ||
+ | ((Spinner)findViewById(R.id.sizelist)).setSelection(1); | ||
+ | // 取得(9件までなら 0~8が取得できる) | ||
+ | ((Spinner)findViewById(R.id.sizelist)).getSelectedItemId() | ||
+ | |||
+ | ==データをxmlで定義する場合== | ||
+ | res/layout/activity_main.xml | ||
+ | <Spinner | ||
+ | android:layout_width="wrap_content" | ||
+ | android:layout_height="wrap_content" | ||
+ | android:id="@+id/size_type_spinner" | ||
+ | android:entries="@array/size_type" | ||
+ | android:spinnerMode="dialog" /> | ||
+ | |||
+ | res/values/arrays.xml | ||
+ | <pre> | ||
+ | <resources> | ||
+ | <string-array name="size_type"> | ||
+ | <item>aspect_3:4</item> | ||
+ | <item>aspect_16:9</item> | ||
+ | <item>aspect_16:5</item> | ||
+ | <item>aspect_1:1</item> | ||
+ | </string-array> | ||
+ | </resources> | ||
+ | </pre> | ||
+ | |||
+ | この場合 spinner.setAdapter(adapter); は不要となる |
2019年8月28日 (水) 18:00時点における最新版
プルダウンサンプル
Spinnerクラスを使う
MainActivity.java
ArrayAdapter<String> adapter = new ArrayAdapter<>( this, android.R.layout.simple_spinner_item, new String[] { "test1", "test2", "test3", "test4"} ); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Spinner spinner = findViewById(R.id.sizelist); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Spinner spinner = (Spinner)parent; String item = (String)spinner.getSelectedItem(); //textView.setText(item); } public void onNothingSelected(AdapterView<?> parent) { // } });
main_activity.xml
<Spinner android:id="@+id/sizelist" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="5dp" android:layout_marginLeft="5dp" />
参考:http://d.hatena.ne.jp/nkawamura/20131005/1380963701
デフォの値を設定する場合
// 設定 ((Spinner)findViewById(R.id.sizelist)).setSelection(1); // 取得(9件までなら 0~8が取得できる) ((Spinner)findViewById(R.id.sizelist)).getSelectedItemId()
データをxmlで定義する場合
res/layout/activity_main.xml
<Spinner android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/size_type_spinner" android:entries="@array/size_type" android:spinnerMode="dialog" />
res/values/arrays.xml
<resources> <string-array name="size_type"> <item>aspect_3:4</item> <item>aspect_16:9</item> <item>aspect_16:5</item> <item>aspect_1:1</item> </string-array> </resources>
この場合 spinner.setAdapter(adapter); は不要となる