Android基於RecyclerView實現高亮搜尋列表

來源:互聯網
上載者:User

標籤: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實現高亮搜尋列表

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.