标签: searchview

Actionbarsherlock searchview:setOnQueryTextListener

我正在尝试使用ActionBarSherlock的搜索视图在List中创建一个过滤器.我目前的代码如下:

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
    getSupportMenuInflater().inflate(R.menu.building_search, menu);

    SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());

    SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() 
    {
        public boolean onQueryTextChange(String newText) 
        {
            // this is your adapter that will be filtered
            listAdapter.getFilter().filter(newText);
            return true;
        }

        public boolean onQueryTextSubmit(String query) 
        {
            // this is your adapter that will be filtered
            listAdapter.getFilter().filter(query);
            return true;
        }
    };
    searchView.setOnQueryTextListener(queryTextListener);

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.search:
            onSearchRequested();
            return true;
    }
    return super.onOptionsItemSelected(item);
} …
Run Code Online (Sandbox Code Playgroud)

android actionbarsherlock searchview

2
推荐指数
1
解决办法
8630
查看次数

SearchView setOnClickListener NOT WORKING

任何人都可以看到为什么这不起作用..

我的SearchView位于ActionBar中并始终显示.我想知道用户何时按下搜索视图...而不是当它扩展或获得焦点时.

此代码位于onCreateOptionsMenu中

             SearchView = _searchView;

                SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
            _searchView = (SearchView) menu.findItem(R.id.menu_finder_text_search).getActionView();
            _searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
            _searchView.setIconifiedByDefault(false); // Do not iconify the widget, we want to keep it open!
            _searchView.setFocusable(false);
            _searchView.setClickable(true);

            _searchView.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    //DO SOMETHING!
                }
            });
Run Code Online (Sandbox Code Playgroud)

任何人?

android click searchview

2
推荐指数
1
解决办法
5415
查看次数

在哪里自动折叠ActionBar SearchView

当用户在搜索小部件中提交应用程序范围内的搜索时ActionBar,我希望它在提交后自动折叠.提交基本上打开了SearchableActivity.目前,如果他们关闭搜索结果activity(SearchableActivity),则搜索窗口小部件仍处于打开状态.我只是希望它关闭; 没有文字.

从阅读中,我似乎认为答案就是这样

`searchView.onActionViewCollapsed() ;' 
Run Code Online (Sandbox Code Playgroud)

但是,我不知道该把它放在哪里?

这是我的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    MenuItem searchItem = menu.findItem(R.id.menu_search);
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    SearchView searchView = (SearchView) searchItem.getActionView();
    searchView.setSearchableInfo(searchManager
            .getSearchableInfo(getComponentName()));
    searchView.setIconifiedByDefault(true);

} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    setupNewSearchView(searchItem, searchManager);



}

return true;
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupNewSearchView(final MenuItem searchItem,
        SearchManager searchManager) {
    android.widget.SearchView searchView = (android.widget.SearchView) searchItem
            .getActionView();
    searchView.setSearchableInfo(searchManager
            .getSearchableInfo(getComponentName()));
    searchView.setIconifiedByDefault(true);
}

@Override …
Run Code Online (Sandbox Code Playgroud)

search android android-actionbar searchview

2
推荐指数
1
解决办法
3851
查看次数

在SearchView中过滤文本显示而不是删除

这是searchview实现的屏幕截图 附件是搜索视图实施的屏幕截图,其中listview活动成功运行.但是,在搜索视图上的任何文本搜索中,它会显示灰色吐司般的功能,显示用户输入的内容以过滤列表.如何删除它,因为它阻止我的列表视图显示在后台?

android type-hinting android-listview searchview

2
推荐指数
1
解决办法
1683
查看次数

ActionBar中的SaerchView显示图标两次而没有自动对焦.这是为什么?

我有一个SearchView片段ActionBar.问题是当我第一次触摸图标时它向左移动(扩展SearchView).然后我必须再次触摸它以获取文本字段.下面的图片将澄清更多.

我已经尝试过的:

requestFocusFromTouch();
requestFocus();
setIconifiedByDeafault(false);
setIconified(); //Works but opens keypad even before touching searchview
Run Code Online (Sandbox Code Playgroud)

代码:

片段的onPrepareOptionsMenu()和onCreateOptionsMenu():

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.menu_search, menu);
    }

    @Override
    public void onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);
        SearchView searchView = (SearchView)menu.findItem(R.id.search).getActionView();
        searchView.setIconified(false);
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                mAdapter.getFilter().filter(newText);
                return false;
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

menu_search.xml

<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <item …
Run Code Online (Sandbox Code Playgroud)

android fragment android-actionbar searchview

2
推荐指数
1
解决办法
829
查看次数

SearchView:从建议监听器获取所选项目

我有一个搜索视图,其中包含由MatrixCursor填充的建议(因为我已经有一个字符串数组).但是我想知道用户正在选择哪个项目.到目前为止,我只能获得用户点击建议列表的位置:

searchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() {
        @Override
        public boolean onSuggestionClick(int position) {
            String selectedItem = (String)mAdapter.getItem(position);
            Log.e("search view", selectedItem);
            return true;
        }
Run Code Online (Sandbox Code Playgroud)

但是我有一个错误:android.database.MatrixCursor无法转换为java.lang.String,我不知道如何解决它.非常感谢任何帮助.

android android-arrayadapter simplecursoradapter matrixcursor searchview

2
推荐指数
2
解决办法
3907
查看次数

是否可以仅使用搜索窗口小部件(SearchView)传递搜索上下文数据?

根据官方文档,有两种方法可以提供搜索界面:使用搜索对话框或SearchView小部件.我想注意使用这两种方式传递搜索上下文数据.

所以,文档说:

..您可以提供系统发送给您的可搜索活动的意图中的其他数据.您可以传递APP_DATA包中的附加数据,该包含在ACTION_SEARCH目的中.

要将此类数据传递给可搜索的活动,请覆盖用户可以执行搜索的活动的onSearchRequested()方法,使用其他数据创建Bundle,并调用startSearch()以激活搜索对话框.例如:

@Override
public boolean onSearchRequested() {
     Bundle appData = new Bundle();
     appData.putBoolean(SearchableActivity.JARGON, true);
     startSearch(null, false, appData, false);
     return true;
}
Run Code Online (Sandbox Code Playgroud)

..一旦用户提交查询,它就会与您添加的数据一起发送到您的可搜索活动.您可以从APP_DATA Bundle中提取额外数据以优化搜索.例如:

Bundle appData = getIntent().getBundleExtra(SearchManager.APP_DATA);
if (appData != null) {
    boolean jargon = appData.getBoolean(SearchableActivity.JARGON);
}
Run Code Online (Sandbox Code Playgroud)

这是指搜索对话框.那么搜索小部件呢?

是否可以SearchView仅使用小部件传递搜索上下文数据?

希望,有人可以给出明确的解释和/或建议另一种或类似的方式来实现目标.

谢谢!

android android-intent android-searchmanager searchview search-dialog

2
推荐指数
1
解决办法
1141
查看次数

如何更改SearchView后退按钮

我的工具栏上有一个SearchView,我想更改默认后退按钮的图标。

这是我的工具栏:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/my_awesome_toolbar"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/actionBarSize"
    app:titleTextColor="@android:color/black"
    android:elevation="5dp">

</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

这是我的SearchView的布局:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:id="@+id/search"
        android:title="@string/search"
        app:icon="@drawable/ic_search_black_24dp"
        android:icon="@drawable/ic_search_black_24dp"
        app:showAsAction="always|collapseActionView"
        android:maxWidth="50dp"
        app:actionViewClass="android.support.v7.widget.SearchView"/>

</menu>
Run Code Online (Sandbox Code Playgroud)

这就是我在活动中创建选项菜单的方式:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_search_team, menu);

    SearchManager searchManager = (SearchManager)
            getSystemService(Context.SEARCH_SERVICE);
    searchMenuItem = menu.findItem(R.id.search);

    searchView = (SearchView) searchMenuItem.getActionView();

    ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
    searchClose.setImageResource(R.drawable.ic_action_cancel_black);
    searchClose.setVisibility(View.VISIBLE);

    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) searchClose.getLayoutParams();
    params.gravity = Gravity.RIGHT;
    searchClose.setLayoutParams(params);

    searchClose.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            //Clear query
            searchView.setQuery("", false); …
Run Code Online (Sandbox Code Playgroud)

android searchview android-toolbar

2
推荐指数
1
解决办法
2585
查看次数

如何删除后退按钮和SearchView之间的左侧空格

Toolbar在后面的按钮和左边之间的左边有一个很大的空白区域SearchView.我的xml文件看起来像这样

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:layout_scrollFlags="scroll|enterAlways"
        android:contentInsetStart="0dp"
        app:contentInsetStart="0dp">

        <android.support.v7.widget.SearchView
            android:id="@+id/search_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>


    </android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

在我的Activity我添加一个后面的按钮如下

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

如果我把它设置为假它可以正常工作.但我需要一个后退按钮.有办法解决吗?谢谢.

我没用过menu layout.

在此输入图像描述

android toolbar searchview

2
推荐指数
1
解决办法
906
查看次数

如何使用浓缩咖啡在SearchView上键入文本

TypeText似乎不适用于SearchView

onView(withId(R.id.yt_search_box))
            .perform(typeText("how is the weather?"));
Run Code Online (Sandbox Code Playgroud)

给出错误:

在视图“ ID为:../ yt_search_box”的视图中执行“键入文本(天气如何?)”时出错

android searchview android-espresso

2
推荐指数
3
解决办法
711
查看次数