标签: searchview

使用Cards在RecyclerView上添加搜索过滤器?

我发现在过滤器上的解决方案ListView,并SearchViewRecyclerView单独的,但我想将它们结合起来.它甚至可能吗?

android filter searchview android-recyclerview

21
推荐指数
1
解决办法
3万
查看次数

无法在SearchView中自动显示键盘

SearchView默认是聚焦的,但是当我尝试显示软件键盘时 - 它不会发生:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
Run Code Online (Sandbox Code Playgroud)

但是,当我点击SearchView时 - 它确实如此.为什么?

android android-softkeyboard android-4.0-ice-cream-sandwich searchview android-4.2-jelly-bean

20
推荐指数
5
解决办法
2万
查看次数

Android SearchView过滤ListView

我已经在SherlockAction Bar中对SearchView实施了搜索过滤器.

当我输入mi想要在下面的列表视图中显示过滤结果时,仅以M开头,依此类推.但现在它显示随机结果.

在此输入图像描述 在此输入图像描述

public boolean onQueryTextChange(String newText) {
    Log.i("Nomad", "onQueryTextChange");

    if (TextUtils.isEmpty(newText)) {
        adapter.getFilter().filter("");
        Log.i("Nomad", "onQueryTextChange Empty String");
        placesListView.clearTextFilter();
    } else {
        Log.i("Nomad", "onQueryTextChange " + newText.toString());
        adapter.getFilter().filter(newText.toString());
    }
    return true;
}

public boolean onQueryTextSubmit(String query) {
    Log.i("Nomad", "onQueryTextSubmit");
    return false;
}

public boolean onClose() {
    Log.i("Nomad", "onClose");
    return false;
}
Run Code Online (Sandbox Code Playgroud)

android searchview

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

Android ActionBar:带有操作按钮的可折叠SearchView

在展开ActionBar搜索视图时,如何使用可折叠搜索视图构建单个操作项可见?为了更具描述性,这就是我需要的:

在此输入图像描述 请注意,还有其他菜单项,并android:uiOptions="splitActionBarWhenNarrow"在其中定义AndroidManifest.xml.

我尝试设置自定义搜索项目布局:

menu.xml文件

<item
    android:id="@+id/menu_search"
    android:actionLayout="@layout/actionbar_search"
    android:icon="@drawable/action_search"
    android:showAsAction="always|collapseActionView"
    android:title="@string/search" />
Run Code Online (Sandbox Code Playgroud)

actionbar_search.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="right"
    android:orientation="horizontal" >

    <com.actionbarsherlock.widget.SearchView
        android:id="@+id/search_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:iconifiedByDefault="false"
        android:queryHint="@string/search_hint" />

    <ImageButton
        android:id="@+id/add_item"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        style="@style/Widget.Sherlock.ActionButton"
        android:src="@drawable/content_new"/>

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

但默认情况下,搜索视图会占用所有可用宽度,而按钮则不可见.我不知道如何强制SearchView填充应用程序图标和菜单项之间的所有可用空间.我发现的只是android:maxWidth属性,但这只允许硬编码维度,我正在寻找一些更灵活的解决方案.我也试着RelativeLayoutandroid:layout_toRightOf="@id/search_view"没有运气.

android android-actionbar searchview

20
推荐指数
1
解决办法
3万
查看次数

更改appcompat的SearchView文本和提示颜色

有人知道如何更改appcompat SearchView的文本颜色吗?我花了2个小时从SO那里尝试了几个建议,但都没有.

这是我的代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:espacios="http://schemas.android.com/apk/res-auto" >

    <item
        android:id="@+id/layer_switcher_button"
        android:icon="@drawable/b_categorias"
        android:title="@string/menu_layer_switcher_title"
        espacios:showAsAction="ifRoom|collapseActionView"/>
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/b_buscar"
        android:title="@string/menu_search_title"
        espacios:actionViewClass="android.support.v7.widget.SearchView"
        espacios:showAsAction="ifRoom|collapseActionView"/>

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

在我的活动中我有这个:

public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);

    menuItem layerSwitcher = menu.findItem(R.id.layer_switcher_button);
    layerSwitcher.setOnMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
        onLayerSwitcherButtonClicked();
            return false;
        }
    });

    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);

    LinearLayout ll = (LinearLayout) searchView.getChildAt(0);
    TextView textView = (TextView) ll.getChildAt(0);

    textView.setTextColor(R.color.white);
}
Run Code Online (Sandbox Code Playgroud)

android styles android-actionbar searchview

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

Android - ActionBar SearchView建议使用简单的String数组

我想实现一个具有建议功能的ActionBar搜索小工具.
已经在我的ORMLite数据库中存储了一个字符串数组,用于建议.
如何在不创建类加载的情况下执行此操作(Provider,Searchable ......!)?

android ormlite android-actionbar searchview

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

当searchview获得焦点时,Android appcompat工具栏会拉伸

我正在更新一个应用程序以使用新的Toolbar而不是常规的ActionBar.在我的应用中,用户必须能够从其联系人列表中选择联系人.为此,我SearchView在菜单中添加了一个.联系人已经在列表中; 该SearchView用于筛选使用列表ArrayAdapter.getFilter()方法.

这一切都很好用ActionBar,但是它Toolbar的高度被拉伸到键盘后面.使用Android设备监视器中的XML检查我可以看到ListView键盘后面的存在.

它似乎似乎SearchView想要显示建议,但我没有配置这样的东西.知道出了什么问题吗?

图像说明了这个问题.它们显示了正常,扩展和聚焦的状态SearchView.

这是我的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_forwarding_contact_search"
        app:showAsAction="always"
        android:title="@string/forwarding_contact_search"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:icon="@drawable/abc_ic_search_api_mtrl_alpha"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

编辑 给予工具栏固定的高度并不能解决问题,因为它SearchView在聚焦时会消失.改变任何一项的重力似乎都没有影响SearchView.

正常状态 膨胀的国家 聚焦状态

android searchview android-toolbar

20
推荐指数
3
解决办法
1万
查看次数

片段替换触发searchView上的onQueryTextChange

这就是我浏览应用的方式:

  • 用列表打开片段
  • 按searchview中输入的文本过滤列表
  • 点击listitem(列表片段被细节片段替换)
  • 向后导航(详细信息片段被列表片段替换)

当我从list-detail-fragment导航时,我希望将searchview的当前过滤器保存在字符串变量中.我在执行onQueryTextChange时存储searchview的值.

问题:我无法存储实际的过滤器值,因为当我从列表导航到详细信息时会调用onQueryTextChange,因为有些东西清除了searchview的文本.

// ...
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String s) {
            searchReceived(s);
            return true;
        }
    });
// ...

public void searchReceived(String searchQuery)
{
    this.stateHolder.searchQuery = searchQuery;
    // more code...
}
Run Code Online (Sandbox Code Playgroud)

当我想在导航回来时恢复过滤器时,它只是使用空字符串过滤,因为存储了错误的值this.stateHolder.searchQuery.

堆:

onQueryTextChange():139, EmployeeListFragment$1 {com.example.exampleapp.fragment}
onTextChanged():1153, SearchView {android.widget}
access$2000():92, SearchView {android.widget}
onTextChanged():1638, SearchView$11 {android.widget}
sendOnTextChanged():7408, TextView {android.widget}
setText():3816, TextView {android.widget}
setText():3671, TextView {android.widget}
setText():80, EditText {android.widget}
setText():3646, TextView {android.widget}
setQuery():511, SearchView {android.widget} …
Run Code Online (Sandbox Code Playgroud)

android state save android-fragments searchview

19
推荐指数
3
解决办法
3645
查看次数

使用AppCompat进行SearchView

我在使用appcompat.v7之前在Actionbar中实现了SearchView,但是当我想将SearchView与支持库v7一起使用时,它显示了null异常

很有型

<item android:id="@+id/action_search"
    android:title="@string/action_search"
    android:icon="@drawable/ic_action_search"
    app:showAsAction="always|collapseActionView"
    android:actionViewClass="android.support.v7.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)

在Java类中:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    searchView.setOnQueryTextListener(this);
    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在onCreateOptionsMenu中声明SearchView以便能够设置查询侦听器?

android searchview android-5.0-lollipop

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

自定义SearchView整个可在android中点击

我的应用程序中有一个SearchView小部件,我想问一些关于使它自定义的问题.首先,您只能通过点击搜索图标开始搜索,有没有办法让整个SearchView可点击?此外,还有一种方法可以在单击时使SearchView显示为这样吗?

一只忙碌的猫http://i41.tinypic.com/rr2ow4.png ![] [1]

它现在处于这种状态:

一只忙碌的猫http://i41.tinypic.com/11jlu2p.png ![] [1]

这是我的代码:

citySearch = (SearchView) findViewById(R.id.city_search_bar);
citySearch.setBackgroundResource(R.drawable.search_background);
citySearch.setOnSearchClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        citySearch.setIconifiedByDefault(true);
        //citySearch.setIconified(true);
    }

});
citySearch.setOnQueryTextListener(new OnQueryTextListener() {

    @Override
    public boolean onQueryTextChange(String text) {

        ((Filterable) cityListView.getAdapter()).getFilter().filter(text);

        return false;
    }

    @Override
    public boolean onQueryTextSubmit(String text) {

        return false;
    }

});

try
{
    Field searchField = SearchView.class.getDeclaredField("mSearchButton");
    searchField.setAccessible(true);
    ImageView searchBtn = (ImageView)searchField.get(citySearch);
    searchBtn.setImageResource(R.drawable.search_icon);
    searchBtn.setScaleType(ScaleType.FIT_CENTER);
    searchPlate.setBackgroundResource(R.drawable.search_background);
}
catch (NoSuchFieldException e)
{
    Log.e("SEARCHSTYLEERROR",e.getMessage(),e);
}
catch (IllegalAccessException e)
{
    Log.e("SEARCHSTYLEERROR",e.getMessage(),e);
}
Run Code Online (Sandbox Code Playgroud)

android searchview android-search android-styles

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