1. 程式人生 > >android listView點選item,高亮顯示

android listView點選item,高亮顯示

實現listView中選擇item高亮的功能,最重要的程式碼就是

adapter.notifyDataSetInvalidated();

通知觀察者,此條資料不再有效。
其次需要在實現BaseAdapter的類中新增一個方法,紀錄選中的item的id

public void setCurrent(int current)
        {
            this.current = current;
        }

然後就是在getView方法中判斷,position的值是否和current的值一樣,然後指定你想要呈現的item的背景或顏色。
程式碼如下:

public
class MyBaseAdapter extends Activity implements AdapterView.OnItemClickListener{ private ListView listView; private Base adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_base_adapter); listView = (ListView) findViewById(R.id.listView); List<String> list = new
ArrayList<String>(); list.add("孫悟空"); list.add("唐三藏"); list.add("豬八戒"); list.add("沙悟淨"); adapter = new Base(list); listView.setAdapter(adapter); listView.setOnItemClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int
position, long id) { adapter.setCurrent(position); adapter.notifyDataSetInvalidated(); } class Base extends BaseAdapter{ private List<String> data; private int current; Base(List<String> data) { this.data = data; } public void setCurrent(int current) { this.current = current; } @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { HolderView holderView = null; if(convertView==null) { convertView = getLayoutInflater().inflate(R.layout.baseadapter_item,null); holderView = new HolderView((ImageView)convertView.findViewById(R.id.image), (TextView)convertView.findViewById(R.id.text)); convertView.setTag(holderView); } holderView = (HolderView) convertView.getTag(); if(current == position) { holderView.getImageView().setImageResource(android.R.drawable.ic_delete); holderView.getTextView().setText(data.get(position)); holderView.getTextView().setTextColor(Color.RED); }else{ holderView.getImageView().setImageResource(R.drawable.ic_launcher); holderView.getTextView().setText(data.get(position)); holderView.getTextView().setTextColor(Color.BLACK); } return convertView; } } class HolderView{ private ImageView imageView; private TextView textView; HolderView(ImageView imageView, TextView textView) { this.imageView = imageView; this.textView = textView; } public ImageView getImageView() { return imageView; } public TextView getTextView() { return textView; } } }

相關推薦

android listViewitem顯示

實現listView中選擇item高亮的功能,最重要的程式碼就是 adapter.notifyDataSetInvalidated(); 通知觀察者,此條資料不再有效。 其次需要在實現BaseAdapter的類中新增一個方法,紀錄選中的item的id

arcgis for android空間查詢 選中該所在區域顯示

修改mail.xml <com.esri.android.map.MapView android:id="@+id/map" android:layout_width="fill_parent" an

listviewitemitem的上邊彈出popwindow

public class ListActivity extends Activity {          private PopupWindow popupWindow;          private TextView mTextView;          @Ove

android listView實現預設選擇選中

public class DemoActivity extends Activity { //顯示具體菜品 private ListView listDishes = null; //具體菜品listview介面卡 private MyAdapter myAdapter; //列表,用

android ListViewitem刪除事件的實現

2016 -10 -12   修改 之前只是為自己做個筆記,沒想到還挺多人需要這個,現在對程式碼進行了優化,並附上原始碼,希望能夠幫助到需要的同行 activity_main: <LinearLayout xmlns:android="http://schema

antd table 行事件以及顯示中行的背景顏色

需求如圖點選表格某一行選中,修改選中行的背景顏色 檢視antd的官方文件 https://ant.design/components/table-cn/ 會發現文件中給出了兩個屬性 rowClassName 和 onRow rowClassName: 表格行的類名,

cocos creator 多節點顯示

可用於鬥地主選牌 程式碼塊 cc.Class({ extends: cc.Component, properties: { poker:{ default:null,

Android ListView之後保持更換的背景色實現已讀功能

        因為專案中有這樣的需求:一般訊息類或者資訊類的介面,都有類似於網易客戶端的點選之後更換背景色,並且保持這個顏色,表示已讀取該條資訊。這個功能一開始覺得已經實現了,在我的另一篇部落格上有:點選開啟連結 後來測試人員在測試的時候,發現這樣一個奇怪的問題:    

Android ListView item 選中顯示之高效實現方式

之前在一篇文章中提到過  的實現方式,具體可以檢視這篇博文,這裡提供另外一種更為高效的方式。 先看效果 未選中時 選中某一項時 下面通過一段程式碼來講解實現過程 activity_main.xml <RelativeLayout xmlns:andro

ListViewitem改變背景重新選中另一項重新整理預設是選中第一項的狀態

今天在工作中遇到一個需求,一個橫版的listview,需要設定item選中之後改變當前item的背景色,重新選擇另一個item之後新選擇的改變背景,原來的恢復,並且需要設定第一項預設選中,開始想的解決方案是給item的根目錄背景設定一個選擇器,點選時一種顏色,取消點選一種顏

androidlistviewitem展開內容

本文轉載自: http://blog.csdn.net/baidu_nod/article/details/38610749 import java.util.ArrayList;   import android.app.Activity;   import and

ListViewitem底部彈出popupWindow刪除、修改、取消選擇框

先看一下效果: 點選單個item彈出選擇框,可以選擇刪除或者修改。刪除單條item,或者跳轉到修改頁面。 listview的佈局: <?xml version="1.0" encoding="utf-8"?> <LinearLay

Android模擬螢幕實現按鍵精靈螢幕功能

我在實現安卓模擬點選螢幕固定位置時嘗試了很多方法,碰了不少壁,現在我將我實現的方法分享給大家,以及我嘗試過的方法也分享給大家,讓大家在開發的路上少走些彎路。 首先我嘗試用安卓輔助功能AccessibilityService類實現模擬螢幕點選,但是這個類只能找到頁面的控制元件,然後對控制元件進行模

Android Studio 執行找不到夜神模擬器的解決辦法

找到夜神模擬器的安裝目錄,我的安裝目錄是: D:/Program Files/NoxVM/Nox/bin/進入控制檯CMD,轉到安裝目錄 cd D:/Program Files/NoxVM/Nox/b

Android ListView側滑item仿QQ刪除效果

最近的專案需求有一條是要實現仿QQ的側滑刪除效果,網上搜到了很多,但是與預想的都不太一樣,於是自己研究了一下,寫了一個Demo,記錄下來。 功能: 1.實現了仿QQ的Item側滑效果 2.可根據item的長度計算側滑範圍 3.實現item條目點選監聽與刪除按鈕監聽 4.

ListViewItem更換顯示內容圖片

先上效果圖 佈局檔案(就是一個listView) <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.androi

android實現空白處軟鍵盤消失事件

/** * 實現點選空白處,軟鍵盤消失事件 */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOW

一篇文章看明白 Android應用圖示到介面顯示的過程

Android - Activity 啟動過程 概述 從點選桌面應用圖示到應用顯示的過程我們再熟悉不過了,下面我們來分析下這個過程都做了什麼。 本文主要對以下問題分析: ActivityThread 是什麼,它是一個執行緒嗎,如何被啟動的? Act

ES高階查詢顯示

package xxx.xxx.xxx.xxx; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.action.search.SearchResponse; impor

AndroidListViewonItemClick不響應onTouch和onItemLongClick響應

這裡先說以下原因,我這裡的ListView不能點選,可能是跟執行緒更新UI有關,與獲取焦點之類無關。 程式裡的ListView設定了點選監聽setOnItemClickListener,長按監聽setOnItemLongClickListener,觸控監聽setOnTouchListener。