android.support.v7.widget.SearchView开发记录(一)

原创 2016年05月31日 20:13:48

android.support.v7.widget.SearchView开发记录(一)

问题列表

SearchView焦点问题

 mSearchView.clearFocus();

SearchView展开状态

mSearchView.setIconified(false)

SearchView获取输入框:SearchView.SearchAutoComplete

mEdit = (SearchView.SearchAutoComplete)   mSearchView.findViewById(R.id.search_src_text)

SearchView 查询图标默认位于编辑框内

    mSearchView.setIconifiedByDefault(false);

SearchView修改样式

 找到V7包下关于SearchView 资源布局文件,根据id来取得相关子View控件,然后设置子View的样式;关于设置自定义样式,主要是关于Shape,Laylist,Selector的设置
  mEdit = (SearchView.SearchAutoComplete)  mSearchView.findViewById(R.id.search_src_text);

关键代码

menu 布局文件:

 <item
    android:id="@+id/action_search"
    android:icon="@mipmap/icon_search"
    app:actionViewClass="android.support.v7.widget.SearchView"
    android:title="@string/menu_find"
    app:showAsAction="ifRoom" />

activity 关键代码:

SearchView.SearchAutoComplete mEdit;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    Log.i(TAG, "MainSearchActivity:onCreateOptionsMenu:140:" + "onCreateOptionsMenu()");
    getMenuInflater().inflate(R.menu.menu_search, menu);
    final MenuItem item = menu.findItem(R.id.action_search);
    mSearchView = (SearchView) MenuItemCompat.getActionView(item);
    mSearchView.setIconifiedByDefault(false);
    mEdit = (SearchView.SearchAutoComplete) mSearchView.findViewById(R.id.search_src_text);
    mEdit.setText(value);
    mEdit.setSelection(value.length());
    mSearchView.setQueryHint("输入您感兴趣的...");

   final LinearLayout search_edit_frame= (LinearLayout) mSearchView.findViewById(R.id.search_edit_frame);
   search_edit_frame.setBackgroundResource(R.drawable.shape_from_edit);
   search_edit_frame.setClickable(true);

    mEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            search_edit_frame.setPressed(hasFocus);
        }
    });

    mEdit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            search_edit_frame.setPressed(true);
        }
    });

    mEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
             /*判断是否是“GO”键*/
            if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                /*隐藏软键盘*/
                mSearchView.clearFocus();
                search_edit_frame.setPressed(false);
                KeyBoardUtils.closeKeybord(mEdit, ct);
                //清空
                if (!StringUtils.isEmpty(v.getText().toString())) {
                    contentlists.clear();
                    value = v.getText().toString();
                    page = 1;
                    resqustData(page);
                }
                return true;
            }
            return false;
        }
    });
    return true;
}

原文点击

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

v7.widget.SearchView的使用

earchView出来已经相当久了,现在才拿出来讲,确实感觉有点跟不上时代的脚步,不管了,就当是给自己做个备份,忘记的时候还可以用来参考! 顺便说一下最近的糟糕情况,好像…自从…五一假期过后,就...
  • YY007H
  • YY007H
  • 2015年12月01日 14:48
  • 1461

v7.widget.SearchView的使用

SearchView出来已经相当久了,现在才拿出来讲,确实感觉有点跟不上时代的脚步,不管了,就当是给自己做个备份,忘记的时候还可以用来参考!顺便说一下最近的糟糕情况,好像…自从…五一假期过后,就一直没...
  • jxxfzgy
  • jxxfzgy
  • 2015年05月27日 23:16
  • 14912

android v7.widget.SearchView的使用

我们的项目中很多的搜索功能都是通过SearchView来实现的,因为这个控件给我们封装了很多功能,也正因为这个,SearchView很多样式不好控制,比如输入框的背景图片,输入框的字体颜色等等!不过如...

Volley网络框架完全解析(使用篇)

转自:http://blog.csdn.net/u010687392/article/details/47449915 在Android中,网络请求无非就这两种:HttpURLConnectio...

cin cin.get() cin.getline() string类成员函数getline(cin,str)使用方法区别与联系

学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1、cin 2、cin.ge...

ClassNotFoundException: Didn't find class "android.support.v7.internal.widget.TintManager

现象:在使用TabLayout的时候,实现ViewPager Indicator 的效果, 代码: 但是运行报错: ClassNotFoundException: Didn't find class...

java.lang.NoClassDefFoundError: android.support.v7.internal.widget.TintManager 解决办法

之前还是ok的,今天添加了一个lib项目,运行时就报这样的错:  E/AndroidRuntime: FATAL EXCEPTION: main                        ...

Attempt to write to field 'int android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a

异常Logcat: Process: com.atguigu.shoppingmall, PID: 11093 java.lang.NullPointerException: Attempt ...

Android.support.v7.widget.Toolbar学习

Android.support.v7.widget.Toolbar 学习 android 5.0 android studio 使用: dependencies {       co...

关于android.support.v7.widget.RecyclerView的使用,总是找不到类。

各位大神求解决,卡在这了,整了一个上午没搞定。 log输出: 06-13 00:42:03.395: E/AndroidRuntime(1884): FATAL EXCEPTION: main...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android.support.v7.widget.SearchView开发记录(一)
举报原因:
原因补充:

(最多只允许输入30个字)