亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Android spinner如何處理選項分組

小樊
83
2024-10-12 10:14:09
欄目: 編程語言

在Android中,要對Spinner的選項進行分組,你可以使用ArrayAdapter結合自定義布局來實現。以下是一個簡單的示例,展示了如何對Spinner的選項進行分組:

  1. 首先,創建一個布局文件(例如:spinner_item_group.xml),用于顯示每個分組項。這個布局可以包含一個TextView來顯示分組名稱,以及其他子項的布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="8dp">

    <TextView
        android:id="@+id/group_title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textAppearance="?android:attr/textAppearanceListItemSmall"
        android:gravity="center_vertical"
        android:textColor="@color/black" />
</LinearLayout>
  1. 創建一個布局文件(例如:spinner_item.xml),用于顯示每個分組內的子項。
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinner_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:padding="8dp" />
  1. 在你的Activity或Fragment中,創建一個數據源來存儲分組信息和子項信息。
List<Map<String, Object>> groupedData = new ArrayList<>();

Map<String, Object> group1 = new HashMap<>();
group1.put("title", "Group 1");
group1.put("items", Arrays.asList("Item 1.1", "Item 1.2", "Item 1.3"));
groupedData.add(group1);

Map<String, Object> group2 = new HashMap<>();
group2.put("title", "Group 2");
group2.put("items", Arrays.asList("Item 2.1", "Item 2.2"));
groupedData.add(group2);

// 更多分組...
  1. 創建一個自定義的ArrayAdapter來綁定分組數據和子項布局。
public class GroupedArrayAdapter extends ArrayAdapter<Map<String, Object>> {

    public GroupedArrayAdapter(@NonNull Context context, int resource, @NonNull List<Map<String, Object>> objects) {
        super(context, resource, objects);
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        if (position == 0) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.spinner_item_group, parent, false);
            TextView groupTitle = convertView.findViewById(R.id.group_title);
            groupTitle.setText((String) getItem(position).get("title"));
        } else {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.spinner_item, parent, false);
            TextView spinnerItem = convertView.findViewById(R.id.spinner_item);
            spinnerItem.setText((String) getItem(position - 1).get("items").get(0));
        }
        return convertView;
    }

    @Override
    public int getCount() {
        return getItemCount() + 1;
    }
}
  1. 在你的Activity或Fragment中,使用自定義的GroupedArrayAdapter將分組數據綁定到Spinner。
Spinner spinner = findViewById(R.id.spinner);
GroupedArrayAdapter adapter = new GroupedArrayAdapter(this, R.layout.spinner_item_group, groupedData);
spinner.setAdapter(adapter);

現在,你的Spinner應該能夠顯示分組選項和每個分組內的子項。注意,這個示例僅用于演示目的,你可能需要根據你的需求進行調整。

0
通城县| 安仁县| 赤水市| 林口县| 利津县| 呼伦贝尔市| 琼海市| 行唐县| 罗田县| 门源| 宁武县| 卓尼县| 金寨县| 南部县| 天镇县| 宜春市| 息烽县| 思南县| 镇安县| 罗甸县| 马关县| 扶沟县| 慈溪市| 三明市| 宁河县| 五家渠市| 恭城| 浦北县| 星子县| 长丰县| 工布江达县| 云龙县| 淮北市| 铜梁县| 绥中县| 黄龙县| 和林格尔县| 黄平县| 安国市| 张家港市| 泸定县|