2019-03-18 14:56:48 2630瀏覽
今天扣丁學堂Android培訓老師給大家分享一篇Android開發之搜索框SearchView用法,結合實例形式分析了Android搜索框SearchView的基本功能、用法及相關操作注意事項。效果:
private final String[] mStrings = {"我愛Java","安卓無敵","好好學習"}; final ArrayAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mStrings); listView.setAdapter(adapter);
listView.setOnItemClickListener(new ListView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Object string = adapter.getItem(position); searchView.setQuery(string.toString(),true); } });
@Override public boolean onQueryTextChange(String newText) { //如果newText長度不為0 if (TextUtils.isEmpty(newText)){ listView.clearTextFilter(); }else{ listView.setFilterText(newText); //adapter.getFilter().filter(newText.toString());//替換成本句后消失黑框!!! } return true; }
public class MainActivity extends Activity { private SearchView searchView; private ListView listView; //定義自動完成的列表 private final String[] mStrings = {"我愛Java","安卓無敵","好好學習"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.lv); final ArrayAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mStrings); listView.setAdapter(adapter); //為ListView啟動過濾 listView.setTextFilterEnabled(true); searchView = (SearchView) findViewById(R.id.sv); //設置SearchView自動縮小為圖標 searchView.setIconifiedByDefault(false);//設為true則搜索欄 縮小成俄日一個圖標點擊展開 //設置該SearchView顯示搜索按鈕 searchView.setSubmitButtonEnabled(true); //設置默認提示文字 searchView.setQueryHint("輸入您想查找的內容"); //配置監聽器 searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { //點擊搜索按鈕時觸發 @Override public boolean onQueryTextSubmit(String query) { //此處添加查詢開始后的具體時間和方法 Toast.makeText(MainActivity.this,"you choose:" + query,Toast.LENGTH_SHORT).show(); return false; } @Override public boolean onQueryTextChange(String newText) { //如果newText長度不為0 if (TextUtils.isEmpty(newText)){ listView.clearTextFilter(); }else{ listView.setFilterText(newText); // adapter.getFilter().filter(newText.toString());//替換成本句后消失黑框!!! } return true; } }); listView.setOnItemClickListener(new ListView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Object string = adapter.getItem(position); searchView.setQuery(string.toString(),true); } }); } }
<?xml version="1.0" encoding="utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!--定義一個SearchView--> <SearchView android:id="@+id/sv" android:layout_width="match_parent" android:layout_height="wrap_content"/> <!--定義自動完成的ListView--> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout>
【關注微信公眾號獲取更多學習資料】