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

Android ListView ChoiceMode 常量錯誤:SINGLE_CHOICE_MODE vs CHOICE_MODE_SINGLE

     編輯:程式設計綜合問答

錯誤現象

代碼中使用 myLV.setChoiceMode(SINGLE_CHOICE_MODE) 編譯報錯:can't find symbol SINGLE_CHOICE_MODE。

原因分析

SINGLE_CHOICE_MODE 不是 ListView 或 AbsListView 的常量,正確常量為 CHOICE_MODE_SINGLE。

正確用法

ListView myLV = findViewById(R.id.ListView1);
// 正確常量
myLV.setChoiceMode(ListView.CHOICE_MODE_SINGLE); // 單選
// 或
myLV.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);

// 其他可用模式
myLV.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);      // 多選
myLV.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); // 多選模態
myLV.setChoiceMode(ListView.CHOICE_MODE_NONE);          // 無選擇

XML 佈局中設置

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:choiceMode="singleChoice" />

配合 CheckedTextView 使用

Item 佈局使用 CheckedTextView 可自動顯示選中狀態:

<CheckedTextView xmlns:android="https://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorSingle"
    android:paddingStart="16dp"
    android:paddingEnd="16dp" />

總結

ListView 選擇模式常量為 CHOICE_MODE_* 系列,定義在 AbsListView 中,注意區分舊版錯誤常量名。

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