facebook twitter hatena line email

「Android/UIプルダウン」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(データをxmlで定義する場合)
 
(同じ利用者による、間の8版が非表示)
行1: 行1:
 
==プルダウンサンプル==
 
==プルダウンサンプル==
 +
Spinnerクラスを使う
  
 
MainActivity.java
 
MainActivity.java
 
<pre>
 
<pre>
 
+
ArrayAdapter<String> adapter = new ArrayAdapter<>(
        ArrayAdapter<String> adapter = new ArrayAdapter<>(
+
        this,
                this,
+
        android.R.layout.simple_spinner_item,
                android.R.layout.simple_spinner_item,
+
        new String[] {
                new String[] {
+
                "test1",
                        "test1",
+
                "test2",
                        "test2",
+
                "test3",
                        "test3",
+
                "test4"}
                        "test4"}
+
);
        );
+
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+
Spinner spinner = findViewById(R.id.sizelist);
        Spinner spinner = findViewById(R.id.sizelist);
+
    spinner.setAdapter(adapter);
        spinner.setAdapter(adapter);
+
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+
    @Override
            @Override
+
    public void onItemSelected(AdapterView<?> parent,
            public void onItemSelected(AdapterView<?> parent,
+
            View view, int position, long id) {
                                      View view, int position, long id) {
+
        Spinner spinner = (Spinner)parent;
                Spinner spinner = (Spinner)parent;
+
        String item = (String)spinner.getSelectedItem();
                String item = (String)spinner.getSelectedItem();
+
        //textView.setText(item);
                //textView.setText(item);
+
    }
            }
+
    public void onNothingSelected(AdapterView<?> parent) {
            public void onNothingSelected(AdapterView<?> parent) {
+
        //
                //
+
    }
            }
+
});
        });
+
 
</pre>
 
</pre>
  
 
main_activity.xml
 
main_activity.xml
 
<pre>
 
<pre>
            <Spinner
+
<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); は不要となる