首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android GridView 實現 CheckBox 風格單選/多選項目

     編輯:程式設計疑難解答

需求:GridView 每個項目像 CheckBox 一樣有「選中/未選中」兩種狀態,並能取得選取狀態。

核心實作步驟

  1. Item 佈局:使用 Checkable 介面的容器(如 CheckableLinearLayout)或直接用 CheckBox。
  2. Selector 狀態圖:在 drawable 定義 state_checked、state_pressed 等背景切換。
  3. GridView 設定:
    gridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE); // 或 SINGLE
    gridView.setAdapter(new MyAdapter(...));
  4. Adapter 中綁定狀態:
    public View getView(int pos, View convertView, ViewGroup parent) {
        View v = ...;
        Checkable c = (Checkable) v;
        c.setChecked(gridView.isItemChecked(pos)); // 同步狀態
        return v;
    }
  5. 取得選取項目:
    SparseBooleanArray checked = gridView.getCheckedItemPositions();
    for (int i = 0; i < checked.size(); i++) {
        if (checked.valueAt(i)) {
            int pos = checked.keyAt(i);
            // 處理選中項目
        }
    }

關鍵點

  • Item 根佈局必須實作 Checkable,否則 setChecked 無效。
  • CHOICE_MODE_MULTIPLE 允許多選,SINGLE 單選。
  • 狀態由 ListView/GridView 內部維護,Adapter 只負責同步顯示。

此模式適用於相簿選圖、聯選人多選等常見場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved