1. 程式人生 > >搜尋歷史 AutoCompleteTextView自定義匹配關鍵字匹配

搜尋歷史 AutoCompleteTextView自定義匹配關鍵字匹配

最近剛開始寫部落格質量不高 並且都是一些基礎的東西 但是我還是搞了好幾個小時 也比較菜鳥還比較笨 我還是要記錄下來這心酸的過程 ! 

東西比較基礎各位不要見怪 請多多批評!

思路 

所以我們按照網上說的寫 如下

上程式碼直接把介面卡換成這個就ok了

package cn.net.baseadapterhelper;

import java.util.ArrayList;
import java.util.List;
import cn.net.handset_yuncar.R;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.TextView;
/*
 * 搜尋歷史自定義介面卡 實現包含匹配 
 * 
 */
public class FilterAdapter<T> extends BaseAdapter implements Filterable {

	private List<T> fData;//過路器(MyFilter)資料來源
	LayoutInflater con;
	private List<T> data;//作為引數的資料來源
	private final Object mLock = new Object();
	private MyFilter mFilter = null;

	public FilterAdapter(Context con, List<T> data) {
		this.con = LayoutInflater.from(con);
		mFilter = new MyFilter();
		this.data = new ArrayList<T>(data);
	}

	public int getCount() {
		return data.size();
	}

	public Object getItem(int position) {
		return data.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}


	public View getView(int peisition, View conview, ViewGroup arg2) {
		View view = null;
		ViewHoder vh = null;
		if (conview == null) {
			vh = new ViewHoder();

			view = con.inflate(R.layout.ruku_sousou, null);
			vh.te = (TextView) view.findViewById(R.id.filter_textview);
			view.setTag(vh);

		} else {
			
			view = conview;
			vh = (ViewHoder) view.getTag();
		}
		vh.te.setText((CharSequence) data.get(peisition));

		return view;
	}

	class ViewHoder {
		TextView te;
	}

	@Override
	public android.widget.Filter getFilter() {

		return mFilter;
	}

	private class MyFilter extends Filter {

		/**
		 * 過濾autoCompleteEditext中的字 改成包含
		 */
		protected FilterResults performFiltering(CharSequence constraint) {

			FilterResults results = new FilterResults();
			if (fData == null) {
				synchronized (mLock) {
					fData = new ArrayList<T>(data);
				}
			}
			int count = fData.size();
			ArrayList<T> values = new ArrayList<T>();

			for (int i = 0; i < count; i++) {
				T value = fData.get(i);
				String valueText = value.toString();
				if (null != valueText && null != constraint
						&& valueText.contains(constraint)) {
					// Log.d("--==tag", "--==tag--" + value);
					values.add(value);
				}
			}
			results.values = values;
			results.count = values.size();
			return results;
		}

		/**
		 * 在FilterResults方法中把過濾好的資料傳入此方法中 results過濾好的資料來源重新給data賦值顯示新的適配內容
		 * 並重新整理介面卡
		 */
		@Override
		protected void publishResults(CharSequence arg0, FilterResults results) {

			data = (List<T>) results.values;
			if (results.count > 0) {
				notifyDataSetChanged();
			} else {
				notifyDataSetInvalidated();
			}

		}

	}

}

相關推薦

搜尋歷史 AutoCompleteTextView定義匹配關鍵字匹配

最近剛開始寫部落格質量不高 並且都是一些基礎的東西 但是我還是搞了好幾個小時 也比較菜鳥還比較笨 我還是要記錄下來這心酸的過程 !  東西比較基礎各位不要見怪 請多多批評! 思路  所以我們按照網上說的寫 如下 上程式碼直接把介面卡換成這個就ok了 package

ELK-logstash的grok定義正則匹配日誌

說明:筆者也是因為應工作需要去學習了大概2個月的ELK 1.需求 在收集日誌的時候往往都需要需要分析日誌需要一些自己特定的欄位去匹配我們需要的欄位內容,以下我會根據一個列子去說明一下去如何使用logstash去自定義正則 2.需要具備哪些?可以自定義正則? (1)需要了解普通的正則,如果不會可以去

spring boot配置shiro定義shiro filter匹配異常

原文地址:http://www.hillfly.com/2017/179.html最近忙著研究在 Springboot 上使用 Shiro 的問題。剛好就遇到個詭異事,百度 Google 也沒找到啥有價值的資訊,幾番周折自己解決了,這裡稍微記錄下。自定義 FilterTOCS

RF定義系統關鍵字

代碼 base 函數 update cfs ati 自動化 文件 編程 如果您準備學習Python,船長在這裏給大家推薦幾個學習Python的好地方: 1、廖雪峰官網 http://www.liaoxuefeng.com/wiki/001374738125095c955

vim matchit 定義配對關鍵字之間的跳轉

vim因其強大的擴充套件性一直深受linux程式設計師的喜愛,最近在用vim寫verilog的時候,由於一個邏輯塊中的begin end較多,常常會多寫或者漏掉匹配關鍵字,很是苦惱,於是尋找匹配關鍵字間跳轉的方法,發現matchit可以用%在關鍵字之間實現跳轉,還可以自定義更多的關鍵字,相當方便。 以下正片

DataTable 定義搜尋條件 _ 定義查詢引數

var table =$('#orderInfoTable').DataTable({ processing: true, //載入 serverSide: true, //後臺分頁 searching: false, //索引 ajax : { url : reque

vim定義新增關鍵字高亮

使用vim編寫java程式碼時,String沒有高亮,而其他資料型別例如int char等都有語法高亮,這讓我非常難受,所以我想把String也設定成高亮 1.開啟vim的syntax資料夾 # cd /usr/share/vim/vim81/syntax 因為每一種語言的語法高亮都在synt

清除微信登入歷史定義預設檔案儲存位置以及聊天記錄還原

這篇文章的本意呢,其實對個人使用者意義不大,因為桌面端微信本身提供了自定義使用者資料檔案存放路徑的設定項,那麼為什麼要寫出來這麼一篇看似無用的教程來呢?是因為微信本身的特殊性,需要使用者登入以後才可以修改設定,那麼對於運維人員來說,想要預裝微信再自定義使用者資料存放路徑就比較

Robot Framework定義封裝關鍵字方法【精華貼】

(在我沒發表之前我沒有搜尋到關於自定義封裝的,故自行苦行摸索將其研究出來了,如果能幫上大家忙,望頂起!),下面言歸正傳: 1.首先找到自己機器python安裝碟符,以我自己的舉例,E:\Python2

RobotFramework定義系統關鍵字解析txt,csv,dbf,xml格式文件(上)

證券 frame art 字符 之前 print framwork 搜索 import 一、需求 業務中有一個功能菜單,解析交易所的證券信息文件,導入到數據表中,有些問價會導入幾個數據表當中。 本次自動化設計的目標就是免去人工對比文件數據和數據表數據的過程; 二、已知

定義函式實現百度搜索關鍵字在網頁中匹配字元高亮顯示效果

    自定義函式實現類似百度搜索關鍵字在網頁中匹配字元高亮顯示效果。完全用php來實現簡單但很有趣的效果。函式如下: <?php /**     * @param $wd 搜尋的詞語

Shiro定義密碼匹配認證

() global throws equals urn authent assert cred color 項目集成shiro的時候,有寫某個自定義類然後繼承自AuthorizingRealm 並且重寫實現了他的2個方法: 1、其中一個:認證回調 驗證賬戶密碼的 doGet

定義能夠匹配 ' 多種字符' 的表達式

bsp bubuko nbsp 技術 技術分享 自定義 結果 src 字符 使用方括號 [ ] 包含一系列字符,能夠匹配其中任意一個字符。用 [^ ] 包含一系列字符,則能夠匹配其中字符之外的任意一個字符。同樣的道理,雖然可以匹配其中任意一個,但是只能是一個,不是多個。

定義流式佈局 + 熱門搜尋 + 搜尋歷史 + SQLite資料儲存

建立SQLite 資料庫 public class DBHelper extends SQLiteOpenHelper { public DBHelper( Context context, String name, SQLiteDatabase.CursorFactory

MVC身份驗證.MVC過濾器.MVC6關鍵字Task,Async.前端模擬表單驗證,提交.定義匿名集合.Edge匯出到Excel.BootstrapTree樹狀選單的全選和反選.bootstrap可搜尋可多選可全選下拉框

在寫這篇部落格之前要嘮叨幾句.本人已從事開發四年有餘.從前兩年的熱情如火.到現在的麻木.總感覺要像上突破.卻又不敢輕舉妄動. 沒事就寫點基礎程式碼.指點下新人吧 1.MVC身份驗證.    有兩種方式.一個是傳統的所有控制器繼承自定義Control,然後再裡面用MVC的過濾器攔截.所以每次網站的後臺被訪問時.

django專案培訓站-29-模型類表單的儲存資料-匹配規則定義-

模型表單的提交儲存資料庫功能 例項化模型表單,傳進一個字典 UserAskForm(request.POST) 非同步提交資料 自定義模型表單類,正則驗證方法 關鍵的 def clean_欄位名(self) self.cleaned_data['欄位

Android定義View:你需要一個簡單好用、含歷史搜尋記錄的搜尋框嗎?

前言 Android開發中,類似下圖的搜尋功能非常常見 今天,我將帶來一款 封裝了 歷史搜尋記錄功能 & 樣式 的Android 自定義搜尋框 開源庫,希望你們會喜歡。

js搜尋 高亮匹配關鍵字,即時展示相關資料

searchCont:function(el,flag){ var _this = this; //空格替換 el.value = el.value.re

EditText搜尋關鍵字,返回結果匹配關鍵字改變顏色

自己專案 用到EditText搜尋結果關鍵字改變顏色,就研究了一下,2種方法實現,發現一個好用的工具類,在程式碼中一行呼叫這個方法,直接實現需求。 KeywordUtil.java工具類。 package com.example.administrator.replace

android 搜尋自動匹配關鍵字並設定器顏色

SpannableString s = new SpannableString(item.getString); LogUtil.E("keyword:"+keyWord); Pattern p = Pattern.compil