中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

Android Spinner如何實現多選功能

小樊
97
2024-10-09 14:51:55
欄目: 編程語言

在Android中,Spinner默認只支持單選。要實現多選功能,可以使用CheckBox或者第三方庫。下面是兩種方法的詳細說明:

方法一:使用CheckBox

  1. 在布局文件中添加SpinnerCheckBox
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <CheckBox
        android:id="@+id/checkBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="多選" />

</LinearLayout>
  1. 在Activity中初始化SpinnerCheckBox
public class MainActivity extends AppCompatActivity {

    private Spinner spinner;
    private CheckBox checkBox;
    private List<String> items;
    private ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        spinner = findViewById(R.id.spinner);
        checkBox = findViewById(R.id.checkBox);

        items = new ArrayList<>();
        items.add("選項1");
        items.add("選項2");
        items.add("選項3");
        items.add("選項4");

        adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, items);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                if (checkBox.isChecked()) {
                    // 保存選中的項
                    List<String> selectedItems = new ArrayList<>();
                    for (int i = 0; i < items.size(); i++) {
                        CheckBox checkBox = findViewById(R.id.checkBox);
                        if (i == position && checkBox.isChecked()) {
                            selectedItems.add(items.get(i));
                        }
                    }
                    // 在這里處理選中的項,例如保存到數據庫或SharedPreferences
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
    }
}

方法二:使用第三方庫(如:Android-MultiSelect-Spinner

  1. build.gradle文件中添加依賴。
implementation 'com.github.jorgecastilloprz:fabprogresscircle:1.01@aar'
implementation 'com.github.jorgecastilloprz:android-multiselectspinner:1.06@aar'
  1. 在布局文件中添加MultiSelectSpinner
<com.jorgecastilloprz.fabprogresscircle.FabProgressCircle
    android:id="@+id/multiSelectSpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:spinner_color="#FF5722"
    app:fab_progress_circle_color="#FFC107"
    app:fab_progress_circle_stroke_width="4dp"
    app:fab_progress_circle_radius="50dp"
    app:fab_progress_circle_text="多選"
    app:fab_progress_circle_text_color="#FFFFFF"
    app:fab_progress_circle_text_size="16sp" />
  1. 在Activity中初始化MultiSelectSpinner
public class MainActivity extends AppCompatActivity {

    private MultiSelectSpinner multiSelectSpinner;
    private List<String> items;
    private List<String> selectedItems;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        multiSelectSpinner = findViewById(R.id.multiSelectSpinner);

        items = new ArrayList<>();
        items.add("選項1");
        items.add("選項2");
        items.add("選項3");
        items.add("選項4");

        selectedItems = new ArrayList<>();

        multiSelectSpinner.setItems(items);
        multiSelectSpinner.setOnItemSelectedListener(new MultiSelectSpinner.OnItemSelectedListener() {
            @Override
            public void onItemSelected(MultiSelectSpinner parent, int position, String item) {
                if (!selectedItems.contains(item)) {
                    selectedItems.add(item);
                }
            }

            @Override
            public void onNothingSelected(MultiSelectSpinner parent) {
            }
        });
    }
}

這樣,你就可以在Android Spinner中實現多選功能了。

0
越西县| 紫金县| 大竹县| 拜城县| 平武县| 蒙山县| 酉阳| 浏阳市| 白沙| 河池市| 邯郸县| 阳山县| 崇左市| 府谷县| 礼泉县| 敦煌市| 色达县| 西和县| 华蓥市| 延长县| 荥经县| 凤凰县| 灵川县| 奉贤区| 顺平县| 时尚| 柞水县| 新郑市| 卢湾区| 浮山县| 德钦县| 牡丹江市| 东乡族自治县| 普陀区| 舟曲县| 盘山县| 禄丰县| 枣强县| 佛冈县| 峨边| 莎车县|