Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中的搜索框(SearchView)的功能和用法

Android中的搜索框(SearchView)的功能和用法

編輯:關於Android編程

1、SearchView是搜索框組件,它可以讓用戶在文本框裡輸入文字,通過監聽器取得用戶的輸入,當用戶點擊搜索時,監聽器執行實際的搜索。


2、SearchView組件的常用方法如下:

①setIconifiedByDefault(boolean iconified) ===> 設置搜索框默認是否自動縮小為圖標。
②setOnQueryTextListener(SearchView,OnQueryTextListener listener) ===> 為搜索框設置監聽器
③setSubmitButtonEnabled(boolean enabled) ===> 設置是否顯示搜索按鈕
④setQueryHint(CharSequence hint) ===> 設置搜索框內的默認顯示的提示文本


3、為SearchView增加一個配套的ListView,則可以為其增加自動完成的功能,即ListView用於為SearchView顯示自動補齊列表


4、具體實現代碼如下:



	
	
	
	


package org.crazyit.ui;

import android.os.Bundle;
import android.text.TextUtils;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.Toast;
import android.app.Activity;

public class SearchViewTest extends Activity implements
		SearchView.OnQueryTextListener {
	private SearchView sv;
	private ListView lv;
	// 自動完成的列表
	private final String[] mStrings = { "aaaaa", "bbbbbb", "cccccc", "ddddddd" };

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		lv = (ListView) findViewById(R.id.lv);
		lv.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1, mStrings));
		lv.setTextFilterEnabled(true);//設置lv可以被過慮
		sv = (SearchView) findViewById(R.id.sv);
		// 設置該SearchView默認是否自動縮小為圖標
		sv.setIconifiedByDefault(false);
		// 為該SearchView組件設置事件監聽器
		sv.setOnQueryTextListener(this);
		// 設置該SearchView顯示搜索按鈕
		sv.setSubmitButtonEnabled(true);
		// 設置該SearchView內默認顯示的提示文本
		sv.setQueryHint("查找");
	}

	// 用戶輸入字符時激發該方法
	@Override
	public boolean onQueryTextChange(String newText) {
		Toast.makeText(SearchViewTest.this, "textChange--->" + newText, 1).show();
		if (TextUtils.isEmpty(newText)) {
			// 清除ListView的過濾
			lv.clearTextFilter();
		} else {
			// 使用用戶輸入的內容對ListView的列表項進行過濾
			lv.setFilterText(newText);
		}
		return true;
	}

	// 單擊搜索按鈕時激發該方法
	@Override
	public boolean onQueryTextSubmit(String query) {
		// 實際應用中應該在該方法內執行實際查詢
		// 此處僅使用Toast顯示用戶輸入的查詢內容
		Toast.makeText(this, "您的選擇是:" + query, Toast.LENGTH_SHORT).show();
		return false;
	}
}



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved