SearchView的最簡單的使用方式

來源:互聯網
上載者:User

標籤:android   style   blog   http   java   color   

SearchView顧名思義就是一個搜尋視圖,和之前講解的自動匹配的輸入框類似。只不過他有自己特有的監聽器,並且可以即時得到使用者輸入的結果。對於SearchView這個控制項,我強烈建議將其放在ActionBar上面,突出搜尋這個功能。但這裡可能會涉及到Actionbar的知識,所以這裡先給大家展示一下這個控制項是幹什麼用的。

布局檔案

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <requestFocus />    <SearchView        android:id="@+id/searchView_id"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <ListView        android:id="@+id/listView_id"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1" >    </ListView>    </LinearLayout>

MainActivity.java

package com.kale.searchview;import android.app.Activity;import android.os.Bundle;import android.widget.SearchView;import android.widget.SearchView.OnQueryTextListener;import android.text.TextUtils;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends Activity implements OnQueryTextListener{    private SearchView sView;    private ListView lView;    //自動完成的列表    private final String[] mStrings = {"aaaa","bbbb","cccc"};        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                viewInit();        lView.setAdapter(new ArrayAdapter<String>(this,                 android.R.layout.simple_list_item_1,mStrings));        lView.setTextFilterEnabled(true);                //設定該searchView預設是否自動縮小為表徵圖        sView.setIconified(false);        //為該設searchView組件設定事件監聽器        sView.setOnQueryTextListener(this);        //設定該組件顯示搜尋按鈕        sView.setSubmitButtonEnabled(true);        //設定該組件預設顯示的提示文本        sView.setQueryHint("尋找");    }        // 使用者輸入字元時激發的方法    @Override    public boolean onQueryTextChange(String newText) {        // TODO 自動產生的方法存根        if(TextUtils.isEmpty(newText)) {            //清除listview的過濾            lView.clearTextFilter();        }        else {            //用使用者輸入的內容對listview的清單項目進行過濾            lView.setFilterText(newText);        }        return true;    }    //使用者單擊搜尋按鈕時激發的方法    @Override    public boolean onQueryTextSubmit(String qurery) {        //這裡僅僅是類比,實際中應該在該方法中進行查詢,然後將結果得到        Toast.makeText(MainActivity.this, "你選擇的是:"+qurery, 0).show();        return false;    }    private void viewInit() {        sView = (SearchView)findViewById(R.id.searchView_id);        lView = (ListView)findViewById(R.id.listView_id);    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.