如何在Android API 7上使用或解决searchManager.getSearchableInfo()?

Dpe*_*nha 7 android android-actionbar android-support-library

我找不到任何地方如何使用支持v7 appcompat库searchManager.getSearchableInfo().

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    MenuItem menuItem = (MenuItem) menu.findItem(R.id.search_widget);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
    searchView.setSubmitButtonEnabled(true);
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    searchView.setSearchableInfo( searchManager.getSearchableInfo(getComponentName()));
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

Call requires API level 8 (current min is 7): android.app.SearchManager#getSearchableInfo   MainActivity.java   /MyApp/src/com/aat  line 113    Android Lint Problem
Run Code Online (Sandbox Code Playgroud)

如果我用@TargetApi忽略错误,我得到这个:

11-21 22:14:48.108: E/AndroidRuntime(2387): java.lang.NoSuchMethodError: android.app.SearchManager.getSearchableInfo
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

小智 0

您是否尝试过使用 API 7 的 actionBarShelock 和 SearchViewCompat ?

适用于 Android API 级别 7 及更高版本的 SearchView 的最佳替代方案?