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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qingfeng812/article/details/51548722

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

原文点击

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值