1. 程式人生 > >android listView實現預設選擇,高亮選中

android listView實現預設選擇,高亮選中

public class DemoActivity extends Activity {
 //顯示具體菜品 
 private ListView listDishes = null;
 //具體菜品listview介面卡 
 private MyAdapter myAdapter;
 //列表,用來存放類別下的菜品 
 List<HashMap<String, String>> data;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.menu);
 //取得所有的菜品  
 data = this.getDishes();
 myAdapter = new MyAdapter(this);
 //尋找菜類別控制元件 
 listDishes = (ListView)findViewById(R.id.listDishes);
 //設定介面卡 
 listDishes.setAdapter(myAdapter);
 //繫結菜品列表單擊監聽器 
 listDishes.setOnItemClickListener(new OnItemClickListener(){
 @Override
 public void onItemClick(AdapterView<?> parent, View view,
 int position, long id) {
    myAdapter.setSelectItem(5); //自定義的變數,以便讓adapter知道要選中哪一項
 
    myAdapter.notifyDataSetInvalidated();//提醒資料已經變動
 }
 });
}
 public List<HashMap<String, String>> getDishes() {
 //宣告一個雜湊陣列 
 ArrayList<HashMap<String, String>> list = new
ArrayList<HashMap<String, String>>();
 HashMap<String, String> map1 = new HashMap<String, String>();
……
 //載入菜品資訊 
 map1.put("dish_name", "魚香肉絲");
 map1.put("dish_price", "5元");
……
 //新增進列表中 
 list.add(map1);
……
 return list;
 }
 static class ViewHolder {
 TextView textDishName;
 TextView textDishPrice;
 }
 public class MyAdapter extends BaseAdapter {
 private LayoutInflater mInflater;
 private int selectItem=-1;
 public MyAdapter(Context context) {
 this.mInflater = LayoutInflater.from(context);
 }
 public int getCount() {
 // TODO Auto-generated method stub  
 return data.size();
 }
 public Object getItem(int arg0) {
 // TODO Auto-generated method stub  
 return data.get(arg0);
 }
 public long getItemId(int arg0) {
 // TODO Auto-generated method stub  
 return arg0;
 }
 public View getView(int position, View convertView, ViewGroup parent) {
 ViewHolder holder;
 if (convertView == null) {
 holder = new ViewHolder();
 //此處佈局檔案詳見文章最後 
 convertView = mInflater.inflate(R.layout.list_dishes_detail, null);
 holder.textDishName = (TextView) convertView.findViewById(R.id.dish_name);
 holder.textDishPrice = (TextView) convertView.findViewById(R.id.dish_price);
 convertView.setTag(holder);
 } else {
 holder = (ViewHolder) convertView.getTag();
 }
 holder.textDishName.setText(data.get(position).get("dish_name"));
 holder.textDishPrice.setText(data.get(position).get("dish_price"));
 //如果位置相同則設定背景為黃色 
 if (position == selectItem) {
 convertView.setBackgroundColor(Color.YELLOW);
 }
 else {
 convertView.setBackgroundColor(Color.TRANSPARENT);
 }
 return convertView;
 }
 public void setSelectItem(int selectItem) {
 this.selectItem = selectItem;
 }
 }
}

相關推薦

android listView實現預設選擇選中

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

android listView點選item顯示

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

ElasticSearch學習筆記(九)Java AP實現搜尋排序分頁

雖然上一篇中的對索引的搜尋可以在一定程度上獲取索引的資訊,但是畢竟功能是有限的,本篇主要是對elasticsearch使用javaAPI實現搜尋功能的筆記。 一、搜尋 package test; import static org.elastics

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

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

Elasticsearch全文檢索關鍵字

code spa nsh pes lds exp response sets highlight 問題 用如下這樣的term方式,可以高亮 .setQuery(QueryBuilders.termQuery("PARAM_NAME", "a")) { "query":

JavaScript實現段落文本

round strong center 右鍵 listener 進行 onkeyup charset mfc 代碼: <!doctype html> <html lang="en"> <head> <meta http-e

短語搜索搜索

port get html .cn 沒有 https efi nbsp ctr 接著上節: http://www.cnblogs.com/spectrelb/p/7977051.html 短語搜索 找出一個屬性中的獨立單詞是沒有問題的,但有時候想要精確匹配一系列單詞

Unity實現通用的物體閃爍的方法(輪廓或整體閃爍)

  一、匯入DoTween或DoTweenPro外掛到專案中 二、編寫一個控制物體輪廓高亮閃爍的指令碼,如下圖所示: using System.Collections; using System.Collections.Generic; using UnityEngine

js實現當前導航選單顯示

html: <div id="navi"> <ul> <li><a href="1.html">主頁</a></li> <li><a href="2.html">欄目1</a></l

經典排序演算法的實現選擇插入shell快速歸併排序)

1.選擇排序 //選擇排序 void selectSort(int * arr, int n) { for (int i = 0; i < n - 1; i++) { int min = arr[i]; int minPos = i; for (int j = i

React-router、antd實現同步瀏覽器地址對應選單

關於 React 和 antd 元件庫 React 是目前主流的前端開發框架,目前前端流行的框架是 Angular,Vue,React,具體選型看專案需求而定。 antd 是基於 React 開發的元件庫,有螞蟻金服團隊退出,目前使用人數較多,元件也比較多,文件也很友好。 本次我做的就是使用 antd

使element-tree預設展開節點

element-ui tree元件預設節點高亮問題: Element-ui tree的官方文件中給我們提供了一個介面: default-expanded-keys陣列 我們可以將預設展開的節點的key放到陣列中,就可以預設展開 但是有一個比較難受的問題是預設展開的節點

react 實現列表選擇在此點選取消

handeSecondQuestionOptions(item){//處理第二題 console.log(item.id) if(!this.state.data.includes(item.id)){ console.log("沒有包含當前的物件") this.state.data.pu

Echarts實現環形圖自動

摘要:需求一個接一個的來,剛實現了tootip自動顯示,緊接著的需求就是希望環形圖自動tootip的同時圖形跟著高亮顯示。 實現:由於之前看了官方文件,就是使用Echarts的api中的dispatchAction方法,type設為highlight。 想要的結果如下圖所

Java-十種內部排序實現選擇冒泡插入希爾歸併快速基數計數桶)及程式碼下載

選擇排序 氣泡排序 插入排序 希爾排序 堆排序 歸併排序 快速排序 基數排序 計數排序 桶排序 1. 選擇排序 這個排序方法最簡單,廢話不多說,直接上程式碼: public class SelectSort { /** * 選擇排

基於Vue實現關鍵詞實時搜尋顯示關鍵詞

最近在做移動real-time-search於實時搜尋和關鍵詞高亮顯示的功能,通過部落格的方式總結一下,同時希望能夠幫助到別人~~~ 好了閒話不多說直接上程式碼 實時搜尋 實時搜尋通過觸發input事件和定時器來實現 <input v-model="keyW

Android實現SSL握手實現伺服器和客戶端之間Socket互動

public class MySSLSocket extends Activity {      private static final int SERVER_PORT = 50030;//埠號      private static final String SERVER_IP = "218.206.17

Angular6實現搜尋關鍵字詞

效果圖如下:   1、建立一個pipe 2、寫pipe(可以完全複製) import {Injectable, Pipe, PipeTransform} from '@angular/core'; import {DomSanitizer} from '@a

Android ListView 實現分批載入

ListView 想必大家都很熟悉了,當有大量資料需要顯示時,通常不會一次性把資料全部載入顯示出來,而是會先載入一部分,當用戶滑動螢幕滑到最後一條資料時,再載入下一部分資料。也就是分批載入。 這篇部落格將講解如何實現 ListView 的分批載入資料。

Linux下可以批註的PDF閱讀器

menledey是一個圖書管理軟體 實現的是個人library的功能 當然,我僅僅把它當作一個PDF閱讀器來用確實是有點 大材小用了,不過他的library功能也挺有用的 好像是每個使用者免費送2GB的個人空間 menledey不僅僅可以閱讀PDF 還可以閱讀WORD文件