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 listView點選item,高亮顯示
實現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
listview點選item,在item的上邊彈出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 ListView點選item刪除事件的實現
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
ListView點選item改變背景,重新選中另一項重新整理,預設是選中第一項的狀態
今天在工作中遇到一個需求,一個橫版的listview,需要設定item選中之後改變當前item的背景色,重新選擇另一個item之後新選擇的改變背景,原來的恢復,並且需要設定第一項預設選中,開始想的解決方案是給item的根目錄背景設定一個選擇器,點選時一種顏色,取消點選一種顏
android之listview點選item展開內容
本文轉載自: http://blog.csdn.net/baidu_nod/article/details/38610749 import java.util.ArrayList; import android.app.Activity; import and
ListView點選item底部彈出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.
ListView點選Item更換顯示內容圖片
先上效果圖 佈局檔案(就是一個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
Android中ListView點選onItemClick不響應,onTouch和onItemLongClick響應
這裡先說以下原因,我這裡的ListView不能點選,可能是跟執行緒更新UI有關,與獲取焦點之類無關。 程式裡的ListView設定了點選監聽setOnItemClickListener,長按監聽setOnItemLongClickListener,觸控監聽setOnTouchListener。