6

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

有两个错误,虽然我找了很多,但我一直没能找到解决办法。

1)MenuItemCompat 类有问题。它说:方法 getActionView(MenuItem) 未定义 MenuItemCompat 类型

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

  • setShowAsAction(项目,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" 我不明白为什么使用它,但如果谷歌这么说,它一定是合适的。

错误消息:在此行找到多个注释:-错误:在包'com.example.pruebahttp3'中找不到属性'actionViewClass'的资源标识符-错误:在包'com.example中找不到属性'showAsAction'的资源标识符。 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>

非常感谢!

4

3 回答 3

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" />

`

于 2014-01-04T14:42:32.513 回答
0

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

于 2014-04-15T11:26:18.767 回答
0

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

对于第二个:

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

于 2013-09-02T19:52:26.760 回答