标签: searchview

如何使用SearchView过滤RecyclerView

我正在尝试SearchView从支持库实现.我希望用户使用它SearchView来过滤一部List电影RecyclerView.

到目前为止我已经按照了几个教程添加SearchViewActionBar,但是我不确定从哪里开始.我看过几个例子,但是当你开始输入时,它们都没有显示结果.

这是我的MainActivity:

public class MainActivity extends ActionBarActivity {

    RecyclerView mRecyclerView;
    RecyclerView.LayoutManager mLayoutManager;
    RecyclerView.Adapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recycler_view);

        mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
        mRecyclerView.setHasFixedSize(true);

        mLayoutManager = new LinearLayoutManager(this);
        mRecyclerView.setLayoutManager(mLayoutManager);

        mAdapter = new CardAdapter() {
            @Override
            public Filter getFilter() {
                return null;
            }
        };
        mRecyclerView.setAdapter(mAdapter);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar …
Run Code Online (Sandbox Code Playgroud)

android searchview android-filterable android-recyclerview

299
推荐指数
5
解决办法
19万
查看次数

MenuItemCompat.getActionView始终返回null

我刚刚实现了v7 AppCompat支持库,但在MenuItemCompat.getActionView我测试的每个Android版本中总是返回null(4.2.2,2.3.4 ....)

SearchView显示在操作栏上,但它不响应触摸操作,不会展开,以显示其EditText与就像一个简单的图标.

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

    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    if (searchView != null) {
        SearchViewCompat.setOnQueryTextListener(searchView, mOnQueryTextListener);
        searchView.setIconifiedByDefault(false);
        Log.d(TAG,"SearchView not null");
    } else
        Log.d(TAG, "SearchView is null");
    }
    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

menu.xml文件

<?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/action_search"
          app:showAsAction="always|collapseActionView"
          android:icon="@drawable/abc_ic_search"
          android:title="@string/action_bar_search"
          android:actionViewClass="android.support.v7.widget.SearchView"/>

    <item android:id="@+id/action_refresh"
          android:icon="@drawable/refresh"
          android:title="@string/action_bar_refresh"
          app:showAsAction="ifRoom"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

android searchview android-search android-actionbar-compat

142
推荐指数
4
解决办法
5万
查看次数

创建看起来像材料设计准则的SearchView

我目前正在学习如何将我的应用程序转换为Material设计,现在我有点卡住了.我添加了工具栏,我的导航抽屉覆盖了所有内容.

我现在正在尝试创建一个类似于材料指南中的可扩展搜索: 在此输入图像描述

这就是我现在所拥有的,我无法弄清楚如何使它如上所述:
我的搜索

这是我的菜单xml:

<?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/action_search"
        android:icon="@android:drawable/ic_menu_search"
        android:title="Search"
        app:showAsAction="always"
        app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
Run Code Online (Sandbox Code Playgroud)

这有效,我得到一个扩展到SearchView的菜单项,我可以很好地过滤我的列表.虽然看起来不像第一张照片.

我尝试使用MenuItemCompat.setOnActionExpandListener(),R.id.action_search所以我可以将主页图标更改为后退箭头,但这似乎不起作用.侦听器中没有任何内容被触发.即使它起作用,它仍然不会非常接近第一张图像.

如何在新的appcompat工具栏中创建看起来像材质指南的SearchView?

android toolbar android-appcompat searchview material-design

132
推荐指数
7
解决办法
13万
查看次数

更改searchview小部件的背景drawable

我正在尝试更改位于Android操作栏searchview小部件中的drawable.

目前它看起来像这样: 在此输入图像描述

但我需要将蓝色背景改为红色.

我尝试过很多东西,不用滚动我自己的搜索小部件,但似乎没有任何工作.

有人能指出我改变这个方向的正确方向吗?

android styles android-actionbar searchview background-drawable

122
推荐指数
5
解决办法
7万
查看次数

如何在Android工具栏中使用SearchView

我正在使用的代码是使用Toolbar和膨胀a menu.

这是代码

private Toolbar mToolbar;
mToolbar.inflateMenu(R.menu.chat_screen_menu);
setupMenu ();
private void setupMenu ()
   {
   mMenu = mToolbar.getMenu();
   if (mMenu != null)
      {
       if (mChatPager != null && mChatPager.getCurrentItem() > 0)
          {
          mMenu.setGroupVisible(R.id.menu_group_chats, true);
          mMenu.setGroupVisible(R.id.menu_group_contacts, false);
          }
       else
          {
           mMenu.setGroupVisible(R.id.menu_group_chats, false);
           mMenu.setGroupVisible(R.id.menu_group_contacts, true);
           mMenu.setGroupVisible(R.id.menu_group_otr_verified,false);
           mMenu.setGroupVisible(R.id.menu_group_otr_unverified,false);
           mMenu.setGroupVisible(R.id.menu_group_otr_off,false);
          }
    }
    mToolbar.setOnMenuItemClickListener(new OnMenuItemClickListener ()
    {
    ..........
    }
}
Run Code Online (Sandbox Code Playgroud)

但现在,他们需要一个Search按钮tool_bar.我设法说出来了,我在这里按照指南 当我尝试写一些东西进行搜索时,我已经测试listener过的东西来测试从未显示过的东西.表示listener不起作用

@Override
    public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.chat_screen_menu, …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar searchview android-toolbar

117
推荐指数
4
解决办法
17万
查看次数

是否可以在Android SearchView上更改文本颜色?

SearchView元素没有用于更改文本颜色的任何属性.默认文本颜色为黑色,不适用于我们的深色背景.有没有办法改变文本的颜色而不诉诸黑客?

我发现这个类似的问题与更改文本大小有关,但到目前为止,它没有任何答案: 如何设置SearchView TextSize?

android searchview

106
推荐指数
13
解决办法
7万
查看次数

如何更改Android SearchView文本

是否有针对SearchView的setText()方法或类似的东西?我尝试在searchView中设置搜索文本,但是没有像这样的方法.

searchView.setText(searchToken);
Run Code Online (Sandbox Code Playgroud)

android searchview

84
推荐指数
4
解决办法
4万
查看次数

在操作栏中实现SearchView

我需要SearchView从我的创建arrayList<String>并在下拉列表中显示相同的建议

在此输入图像描述

我寻找教程,逐步解释如何SearchView在操作栏中构建一个.

我已经阅读了文档,并按照谷歌的例子,但它对我没用.

我创建了搜索

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/action_search"
          android:title="Search"
          android:icon="@android:drawable/ic_menu_search"
          android:showAsAction="always"
          android:actionViewClass="android.widget.SearchView" />
</menu>`
Run Code Online (Sandbox Code Playgroud)

但我不知道如何设置字符串数组的参数.我试图在不同的Activity中检索结果但不起作用.

android autocompletetextview android-actionbar searchview

79
推荐指数
3
解决办法
18万
查看次数

无法在actionbar中获取searchview

我是java和android开发的新手; 我一直在开发一个应用程序,我需要一个带有操作栏的操作栏SearchView.我看过谷歌的例子,但我无法让它工作.我一定做错了,我即将放弃应用程序开发:DI已经搜索但我没有找到任何有用的东西.也许你们可以帮助我:)

问题:我得到的搜索视图应该打开,但在此之后什么也没发生,我注意到我的searchManager.getSearchableInfo(getComponentName())返回null.另外,我给出的提示没有显示在我的搜索框中,这让我相信应用程序可能无法找到我的搜索文件?够了:)

MainActivity.java

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

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

        // Get the SearchView and set the searchable configuration
        SearchManager searchManager =
            (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView =
            (SearchView) menu.findItem(R.id.menu_search).getActionView();
        searchView.setSearchableInfo(
            searchManager.getSearchableInfo(getComponentName()));

        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

searchable.xml

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:hint="@string/search_hint"
    android:label="@string/app_label">
</searchable>
Run Code Online (Sandbox Code Playgroud)

Androidmanifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.searchapp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar searchview

66
推荐指数
5
解决办法
3万
查看次数

如何以编程方式关闭SearchView?

我目前SearchView在我的应用程序的操作栏中有一个.当我单击搜索图标时,SearchView扩展和键盘会按预期弹出.单击SearchView框中的"X" SearchView将按预期关闭.但是,当SearchView激活并按下"后退"按钮时,我的应用程序将退出.这是正确的行为,但我现在要做的是捕获后退按钮,只是让它SearchViewSearchView可见时关闭(不是我的应用程序).有没有办法SearchView OnCloseListener()按后退按钮以编程方式调用?例如,像这样:

// On a back button press, if we are currently searching,
// close the SearchView. Otherwise, invoke normal back button
// behavior.
public boolean onKeyDown(int keyCode, KeyEvent event) {
   if (keyCode == KeyEvent.KEYCODE_BACK) {
        if (isSearchViewVisible) {
            SearchView searchView = (SearchView) menu.findItem(R.id.searchBox)
               .getActionView();

            // This method does not exist
            searchView.invokeClose();
            return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

android searchview

64
推荐指数
6
解决办法
6万
查看次数