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;    }

更多相关文章

  1. Android(安卓)Studio显示主题/样式设置
  2. ScrollView中页面显示自动滑到最后问题的解决
  3. Android布局之FrameLayout设置控件居中显示
  4. 【Android开发那点破事】Android(安卓)EditText不弹出输入法焦点
  5. Android进程调度之adj算法
  6. Android(安卓)App设置成Launch
  7. Android中Google Authenticator验证系统工作原理分析
  8. 解决某些手机RadioGroup中的RadioButton不居中问题
  9. android中的配置权限

随机推荐

  1. Android(安卓)代码混淆机制
  2. MonoDroid学习笔记(九)—— 控件大串烧,在An
  3. android流畅度比Ios差的原因
  4. Android(安卓)Studio关联source源码
  5. 手写选择题识别-生成编译opencv项目.so文
  6. android View移动的四种方式
  7. Android:如何跟踪第一个Activity界面绘制
  8. [置顶] 前言
  9. Android造成内存泄漏原因及解决方案
  10. Android(安卓)架构演进及未来