Android(安卓)SearchView 实现一边输入一边搜索功能
16lz
2021-01-26
Android 自动的组件SearchView 在实现自动搜索有很好的支持,这是前段时间做的一个项目里面需要实现的功能在此做一个简单的总结。
SearchView的布局
"@+id/actionbar_right_edittext" android:layout_width="210dp" android:layout_height="40dp" android:imeOptions="actionSearch" android:textColor="@color/white" android:textSize="@dimen/film_gridview_average" />
实力画SearchView并设置相关属性
mSearchView = (SearchView) findViewById(R.id.actionbar_right_edittext); //设置某人搜索按钮是否在输入框内,false表示不在,true表示在 mSearchView.setIconifiedByDefault(false); mSearchView.setFocusable(true); mSearchView.clearFocus(); mSearchView.setOnCloseListener(this); mSearchView.setOnQueryTextListener(this);
SearchView的监听事件
@Override public boolean onQueryTextSubmit(String query) { //获取软键盘对象 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null) { imm.hideSoftInputFromWindow(mSearchView.getWindowToken(), 0); } /** * 在这里进行你对输入条件的查询操作 * * */ Fragment fragment = SearchListFragment.newInstance("关键字搜索", query, sql(query)); FragmentManager fm = getFragmentManager(); FragmentTransaction transaction = fm.beginTransaction(); transaction.replace(R.id.main_fragment, fragment); transaction .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); transaction.addToBackStack("listFrament"); transaction.commit(); mListView.setVisibility(View.GONE); mSearchView.clearFocus(); } return true; } @Override public boolean onQueryTextChange(String queryText) { /** * 在这里编写你一边输入一边查询的操作 * * */ AppConfig.getInstance().setSearchStr(queryText); list = null; if (!queryText.equals("")) { String sql = "select * from localMovie where movieChar like '%" + queryText + "%' or movieName like '%" + queryText + "%' order by playCount "; list = dao.select(sql); if (list != null || list.size() != 0) { mAdapter.loadNewData(list); mListView.setVisibility(View.VISIBLE); } } else { mListView.setVisibility(View.GONE); } return true; }//关闭搜索框的操作 @Override public boolean onClose() { AppConfig.getInstance().setSearchStr(null); if (list != null) { list.clear(); } mListView.setVisibility(View.GONE); return true; }
更多相关文章
- Android(安卓)Studio显示主题/样式设置
- ScrollView中页面显示自动滑到最后问题的解决
- Android布局之FrameLayout设置控件居中显示
- 【Android开发那点破事】Android(安卓)EditText不弹出输入法焦点
- Android进程调度之adj算法
- Android(安卓)App设置成Launch
- Android中Google Authenticator验证系统工作原理分析
- 解决某些手机RadioGroup中的RadioButton不居中问题
- android中的配置权限