android spinner如何实现多选

avatar
作者
猴君
阅读量:0

要实现Android Spinner的多选功能,可以通过自定义Adapter和布局来实现。以下是一个简单的实现步骤:

  1. 创建一个包含复选框的自定义布局文件(例如list_item_multiple_choice.xml),其中包含一个TextView和一个CheckBox:
<LinearLayout     xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:orientation="horizontal">      <TextView         android:id="@+id/text_view"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:textSize="16sp"         android:padding="8dp"/>      <CheckBox         android:id="@+id/check_box"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_marginStart="8dp"/> </LinearLayout> 
  1. 创建一个自定义Adapter类,重写getView()方法来设置Spinner的多选功能:
public class MultipleChoiceAdapter extends ArrayAdapter<String> {     private boolean[] selectedItems;      public MultipleChoiceAdapter(Context context, List<String> items) {         super(context, 0, items);         selectedItems = new boolean[items.size()];     }      @NonNull     @Override     public View getView(int position, View convertView, @NonNull ViewGroup parent) {         if (convertView == null) {             convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item_multiple_choice, parent, false);         }          TextView textView = convertView.findViewById(R.id.text_view);         CheckBox checkBox = convertView.findViewById(R.id.check_box);          String item = getItem(position);         if (item != null) {             textView.setText(item);             checkBox.setChecked(selectedItems[position]);             checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> selectedItems[position] = isChecked);         }          return convertView;     } } 
  1. 在Activity中设置Spinner和Adapter:
Spinner spinner = findViewById(R.id.spinner); List<String> items = Arrays.asList("Item 1", "Item 2", "Item 3", "Item 4"); MultipleChoiceAdapter adapter = new MultipleChoiceAdapter(this, items); spinner.setAdapter(adapter); 

现在,您可以在Spinner中选择多个选项,并通过selectedItems数组来获取所选项的状态。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!