標籤:recycle lis 監控 第四篇 科學 工具 art util statistic
這篇應該是RecycleView的第四篇了,RecycleView真是新生代的寵兒能做這麼多的事情。
轉載請註明作者AndroidMsky及原文連結
http://blog.csdn.net/AndroidMsky/article/details/53306657
本文Github:歡迎star
https://github.com/AndroidMsky/SearchView
話不多說先看今天的實現的效果:
相信這樣的效果非常多項目都會用到,今天就講講利用RecycleView來實現他,博主把此篇文章定位0基礎篇,可能由於這確實非常easy,所以我要更要講的具體一點讓新手也能夠能看的懂。
飯要開始做了,我們要準備哪些食材呢。
1.一個RecyclerView或是listview或是其它能夠顯示多item的控制項(基本的乾貨)
2.搞清楚EditText的即時監聽
3.讓一個textview出現不同的顏色
4.怎樣穿過Adpter找出textview中key值(也就是高亮字串)
當你打通這四個技術點後。假設還不能實現這樣的效果,那麼你能說你如今的學習太死板,不會活學活用。假設你看到效果立刻想到這四個技術點說明你有一定的項目組織能力了。接下來我們就解析一下這個四個食材。
1.RecyclerView猶豫這裡比較簡單能夠使用原聲的RecyclerView。可是筆者一直在用封裝好的RecyclerView所以還用我之前封裝好的來實現假設對RecyclerView還不熟悉的傳送門送你走:
http://blog.csdn.net/androidmsky/article/details/52922348
2.EditText事實輸入監聽,事實上就是個借口每次Editext中的字元發生改變會回調這個介面:
TextWatcher textWatcher = new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable editable) { } };
啪啪啪一注冊介面。onTextChanged就是我們想要的方法了:
editMobile.addTextChangedListener(textWatcher);
3.textview顯示不同顏色,事實上這有非常多種實現方式,最笨的就是用兩個或者說是用三個textview左右挨著實現醒目提示,然而這並不科學,我們使用StringFormatUtil這樣一個工具類來實現醒目提示。
StringFormatUtil spanStr3 = new //各自是上下文,原串,key。醒目提示。
StringFormatUtil(mContext, data.name, mkey, R.color.blue).fillColor(); customerHolder.tvName.setText(spanStr3.getResult());
4.Adapter怎樣知道key。
在構造方法去傳入就能夠了:
public CustomerCampanySearchAdapter(List<Customer> list, Context context, String key) { super(list); mContext = context; mkey = key; this.list = list; }
好的4個食材我們就準備好了
烹飪邏輯例如以下:
1.注冊生產全部類。
2.在即時監控edittext的回調介面中又一次構造CustomerCampanySearchAdapter傳入新的key值。
public void showCustomer(List<Customer> list, String key) { if (list == null || list.size() == 0) return; customerList.clear(); customerList.addAll(list); adapter = new CustomerCampanySearchAdapter(customerList, this, key); superRecyclerView.setAdapter(adapter); superRecyclerView.showData(); adapter.setOnItemClickListener(new BaseRecyclerAdapter.OnItemClickListener() { @Override public void onItemClick(View view, int position, long id) { // } }); }
3.在CustomerCampanySearchAdapter中的onBindViewHolder方法中改變Textview的高亮key值。
@Override public void onBindViewHolder(BaseRecyclerViewHolder holder, int position, final Customer data) { CustomerHolder customerHolder = (CustomerHolder) holder; customerHolder.tvName.setText(data.name); StringFormatUtil spanStr3 = new StringFormatUtil(mContext, data.name, mkey, R.color.blue).fillColor(); if (spanStr3 != null) customerHolder.tvName.setText(spanStr3.getResult()); else customerHolder.tvName.setText(data.name); }
效果就這樣完美實現了。也提倡大家在分析的時候一定要冷靜。首先看懂自己要什麼效果,之後就是你須要什麼子效果,然後是怎麼把這些子效果串起來實現終於的效果。
本文Github:歡迎star
https://github.com/AndroidMsky/SearchView
歡迎加作者自營安卓開發交流群:308372687
博主原創未經同意不得轉載。轉載必究
—————————————————————————————
作者推薦: 安卓自己定義view滾動資料顯示
http://blog.csdn.net/androidmsky/article/details/53009886
RecyclerView下拉重新整理分頁載入效能最佳化和Gilde配合載入三部曲
http://blog.csdn.net/androidmsky/article/details/53115818
打造企業級網路請求框架組合retrofit+gson+mvp
http://blog.csdn.net/androidmsky/article/details/52882722
安卓手機自己主動接起QQ視頻秒變網路攝影機
http://blog.csdn.net/androidmsky/article/details/53066441 —————————————————————————————
Android基於RecyclerView實現高亮搜尋列表