【问题标题】:Getting a SearchView with MenuItemCompat (Android)使用 MenuItemCompat (Android) 获取 SearchView
【发布时间】:2013-09-05 17:02:55
【问题描述】:

我正在尝试按照 android 开发人员的说法实现 SearchView ActionBar 项,但我遇到了一些麻烦。 (http://developer.android.com/guide/topics/ui/actionbar.html)。

有两个错误,虽然找了很多,还是没找到解决办法。

1) 我对 MenuItemCompat 类有疑问。它说: 方法 getActionView(MenuItem) 未为 MenuItemCompat 类型定义

我只能对这个类使用以下方法:

  • setShowAsAction(item, actionEnum)
  • setActionView(项目,视图)

这是代码

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.restloader, menu);
    MenuItem searchItem = menu.findItem(R.id.search_menu);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);       

    // Configure the search info and add any event listeners

    return super.onCreateOptionsMenu(menu);
}

2) 这个有问题: xmlns:myapp="http://schemas.android.com/apk/res-auto" 我不明白为什么要使用它,但如果谷歌这么说,它一定是合适的。

错误信息: 在此行找到多个注释: - 错误:在包中找不到属性“actionViewClass”的资源标识符 'com.example.pruebahttp3' - 错误:在包中找不到属性“showAsAction”的资源标识符 'com.example.pruebahttp3'

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

<item
    android:id="@+id/search_menu"
    android:orderInCategory="100"
    android:title="@string/search"
    android:icon="@drawable/ic_search_category_default"
    myapp:showAsAction="ifRoom|collapseActionView"
    myapp:actionViewClass="android.support.v7.widget.SearchView">         
</item>

非常感谢!

【问题讨论】:

    标签: android menu android-actionbar searchview


    【解决方案1】:

    尝试直接从 yourFolder\sdk\extras\android\support\v7\appcompat\libs 复制 lib 文件 我有类似的问题,但是当我直接复制 JAR 库文件而不是遵循 android 支持库过程时,我会遇到这种情况。尝试相反它可能对你有用。 如果你问我有点奇怪。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,我用下面的代码解决了。注意你的命名空间。`

      <!-- Search, should appear as action button -->
      <item
          android:id="@+id/action_search"
          android:icon="@drawable/abc_ic_search"
          share:showAsAction="ifRoom"
          share:actionViewClass="android.support.v7.widget.SearchView"
          android:title="@string/abc_searchview_description_search" />
      

      `

      【讨论】:

        【解决方案3】:

        对于第一个:修复第二个将解决此问题:)

        第二次:

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

        将 myapp 更改为您的应用程序命名空间 com.xxx.xxx

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-07-03
          • 2018-10-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-05
          • 2013-01-28
          相关资源
          最近更新 更多