0

アクティビティにこのエラーを示すコードがありますが、保存を押した場合のみです。

Call requires API level 11 (current min is 8): android.widget.SearchView#setSearchableInfo

android:minSdkVersionを7に変更すると機能しますが、コードを再度保存すると、同じエラーがスローされます。次に、minSdkを8に戻す必要があります...何が問題になっていますか?

4

2 に答える 2

4

SearchViewAPI レベル 11 以降で使用できます。

最小 SDK が 8 (11 未満) であるため、Lint を使用するとエラーが発生しSearchViewます。@TargetApiメソッドまたはクラスの前にアノテーションを使用することで、そのエラーを取り除くことができます。ただし、使用する前に条件ステートメントを使用SearchViewして、それが利用可能かどうかを確認し、以前のバージョンの代替手段を提供する必要があります。

コードは次のようになります。

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
void yourMethod(){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
        // use SearchView
    } else {
        // use some other backward compatible custom view
    }
}
于 2013-01-23T15:41:26.497 に答える
3

SearchView は、バージョン 11 以降の Android に存在します。そのため、コードで SearchView を使用する場合は、マニフェストに minSdkVersion を 11 に設定する必要があります。11 より小さい数値を設定すると、エラーが発生します。アプリをサポートしない一部の Android バージョンにアプリへのアクセスを許可します。

これはここで見ることができます (@JesseJ に感謝): http://developer.android.com/reference/android/widget/SearchView.html

Added in API level 11
于 2013-01-23T15:32:08.463 に答える