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

Android ListView 項目點擊實現 TextView 顏色切換

     編輯:程式設計疑難解答

交互需求

ListView 包含 3 個項目,每項含兩個 TextView。初始狀態:第一項文字黑色,其餘白色。點擊其他項時,該項兩個 TextView 變黑,其他項恢復白色。

實現思路

  1. 在數據源實體類中添加 isSelected 標志位
  2. 默認設置第一條數據 isSelected = true
  3. Adapter 的 getView 中根據標志位設置文字顏色
  4. 項目點擊事件中:遍歷數據源將所有 isSelected 置 false,再將當前點擊項第一個 TextView 對應標志位置 true,最後調用 notifyDataSetChanged()

關鍵代碼片段

// 在 getView 中
if (item.isSelected) {
    textView1.setTextColor(Color.BLACK);
    textView2.setTextColor(Color.BLACK);
} else {
    textView1.setTextColor(Color.WHITE);
    textView2.setTextColor(Color.WHITE);
}

// 在 OnItemClickListener 中
for (DataItem item : dataList) {
    item.isSelected = false;
}
dataList.get(position).isSelected = true;
adapter.notifyDataSetChanged();

此模式通過數據驅動視圖更新,避免直接操作 View 持有引用導致的復用問題。

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