【问题标题】:How to add EditText to ActionBar for ListView filtering?如何将 EditText 添加到 ActionBar 以进行 ListView 过滤?
【发布时间】:2015-01-29 12:10:01
【问题描述】:

我在此 ActionBar 上有一个带有操作栏和一个图标的活动。当用户按下此图标时,我需要隐藏此图标并显示带有交叉的 EditText 以清除文本。当用户完成它(在 ListView 中选择项目或按返回按钮)我将需要再次显示图标。

这是两个相关的问题: 1、如何在ActionBar上添加EditText进行ListView过滤? 2. 如何在EditText和icon之间切换ActionBar?

点击前:

点击“加号”图标后:

【问题讨论】:

标签: android android-actionbar


【解决方案1】:

您需要将 SearchView 小部件添加到您的应用程序。 官方文档在这里: http://developer.android.com/training/search/setup.html

还有详细的添加说明。

【讨论】:

  • 当我将android:actionViewClass="android.widget.SearchView" 添加到我的菜单项时,它会将图标从“加号”更改为带有“放大镜”的搜索图标。这不是我想要的,我需要一个“加号”图标。
  • 您不能轻易更改默认图标。看看这个答案:stackoverflow.com/questions/10445760/…
【解决方案2】:

searchmenu.xml

<?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>

ma​​inactivity.java

@Override
public boolean onCreateOptionsMenu(Menu menu) {     
    getMenuInflater().inflate(R.menu.searchmenu, menu);
    mSearchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    setupSearchView();
    return super.onCreateOptionsMenu(menu);
}

     private void setupSearchView() {
            mSearchView.setIconifiedByDefault(true);
            mSearchView.setOnQueryTextListener(this);
            mSearchView.setQueryHint("Search Here");
        }

@Override
public boolean onQueryTextChange(String newText) {
        //implement the filterng techniques
    return false;
}

@Override
public boolean onQueryTextSubmit(String query) {

    return false;
}

【讨论】:

  • 当我将 android:actionViewClass="android.widget.SearchView" 添加到我的菜单项时,它会将图标从“加号”更改为带有“放大镜”的搜索图标。这不是我想要的,我需要一个“加号”图标。
  • 在 searchmenu.xml 中使用 android:icon="@drawable/plus"
【解决方案3】:
  1. 如何在 ActionBar 上添加 EditText 以进行 ListView 过滤?

请参考 Commonsware 的this answer。更清楚的是,他的sample project 可以解决问题。

  1. 如何在EditText和图标之间切换ActionBar?

只需覆盖 onOptionItemSelected 并尝试设置该菜单项的可见性。

MenuItem item = menu.findItem(R.id.my_item);
item.setVisible(false);

或者,如果你想完全控制在你的手中,请尝试customize your action bar

【讨论】:

    猜你喜欢
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    相关资源
    最近更新 更多