6

Android開発者が言うように、SearchView ActionBarアイテムを実装しようとしていますが、問題があります。( http://developer.android.com/guide/topics/ui/actionbar.html )。

いろいろ探したのに解決策が見つからなかったという2つの間違いがあります。

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) これには問題があります。

エラー メッセージ: この行に複数の注釈が見つかりました: - エラー: パッケージ 'com.example.pruebahttp3' で属性 'actionViewClass' のリソース識別子が見つかりませんでした - エラー: パッケージ 'com.example.プルエバhttp3'

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

lib ファイルを yourFolder\sdk\extras\android\support\v7\appcompat\libs から直接コピーしてみてください。同様の問題がありますが、Android サポート ライブラリの手順に従うのではなく、JAR ライブラリ ファイルを直接コピーすると発生します。 . それがあなたのために働くかもしれない反対を試してみてください。あなたが私に尋ねると、ちょっと変です。

于 2014-04-15T11:26:18.767 に答える
0

1番目の場合:2番目のものを修正すると、これが修正されます:)

2番目の場合:

<?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 に答える