91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Android Spinner怎樣實現選項分組顯示

小樊
82
2024-10-09 14:02:50
欄目: 編程語言

在Android中,要實現Spinner選項分組顯示,可以通過創建一個自定義的適配器(Adapter)來實現。這個適配器需要繼承自BaseAdapter,并重寫其中的方法,如getCount()、getItem()、getItemId()和getView()。以下是一個簡單的示例:

  1. 首先,創建一個數據源,用于存儲分組后的數據。例如,可以創建一個List<Map<String, Object>>,其中每個Map表示一個分組,包含分組名稱和子選項列表。
List<Map<String, Object>> groupedData = new ArrayList<>();
Map<String, Object> group1 = new HashMap<>();
group1.put("name", "分組1");
group1.put("items", Arrays.asList("選項1-1", "選項1-2", "選項1-3"));
groupedData.add(group1);

Map<String, Object> group2 = new HashMap<>();
group2.put("name", "分組2");
group2.put("items", Arrays.asList("選項2-1", "選項2-2", "選項2-3"));
groupedData.add(group2);
  1. 創建一個自定義的適配器,繼承自BaseAdapter。
public class GroupedSpinnerAdapter extends BaseAdapter {
    private List<Map<String, Object>> groupedData;
    private Context context;

    public GroupedSpinnerAdapter(Context context, List<Map<String, Object>> groupedData) {
        this.context = context;
        this.groupedData = groupedData;
    }

    @Override
    public int getCount() {
        return groupedData.size();
    }

    @Override
    public Object getItem(int position) {
        return groupedData.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.spinner_item, parent, false);
        }

        TextView groupTextView = convertView.findViewById(R.id.group_text_view);
        List<String> items = (List<String>) groupedData.get(position).get("items");
        groupTextView.setText(items.get(0));

        Spinner spinner = convertView.findViewById(R.id.spinner);
        ArrayAdapter<String> itemAdapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, items);
        itemAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(itemAdapter);

        return convertView;
    }
}

在這個適配器中,我們使用了一個簡單的布局文件spinner_item.xml來顯示每個分組的名稱和一個Spinner。分組的名稱顯示在TextView中,而子選項則顯示在嵌套的Spinner中。

  1. 在Activity或Fragment中,設置自定義適配器并綁定到Spinner。
Spinner spinner = findViewById(R.id.spinner);
GroupedSpinnerAdapter adapter = new GroupedSpinnerAdapter(this, groupedData);
spinner.setAdapter(adapter);

現在,你的Spinner應該能夠以分組的方式顯示選項了。請注意,這個示例僅用于演示目的,你可能需要根據實際需求對其進行調整。

0
斗六市| 库伦旗| 榆林市| 老河口市| 新营市| 安康市| 遂川县| 霸州市| 庆阳市| 武强县| 贵港市| 临汾市| 准格尔旗| 滦南县| 康定县| 罗源县| 沙田区| 彭泽县| 永德县| 同江市| 邹城市| 城步| 富裕县| 北碚区| 库尔勒市| 凌源市| 佛教| 新巴尔虎左旗| 伊春市| 买车| 称多县| 遂溪县| 茶陵县| 南康市| 军事| 蓬溪县| 东辽县| 兴仁县| 丰城市| 武功县| 沂南县|