首先
I am using support libraries
我有一个BrowseFoods活动
<activity
android:name=".BrowseFoods"
android:label="@string/app_name"
android:theme="@style/MyCustomTheme" >
<intent-filter>
<action android:name="com.Syriatel.BROWSEFOODS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainCustomerMenu2" />
</activity>
,代码为:
public class BrowseFoods extends ActionBarActivity{
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
int currentTab = mViewPager.getCurrentItem();
if (currentTab == 0) {
menu.clear();
inflater.inflate(R.menu.all_food, menu);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
MenuItem searchItem = menu.findItem(R.id.searchMenuItem);
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
android.support.v7.widget.SearchView searchView = (android.support.v7.widget.SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
}
} else {
menu.clear();
inflater.inflate(R.menu.favoritefood, menu);
}
return super.onPrepareOptionsMenu(menu);
}
}
在那个活动中,我将两个片段添加为标签,因此在准备菜单时,我会检查当前使用的标签。因此,我知道我必须使用哪个菜单。
请查看代码,我正在使用 all_foods 菜单 这是:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/searchMenuItem"
android:title="searchnNsNNN"
android:icon="@android:drawable/ic_lock_lock"
yourapp:showAsAction="collapseActionView|ifRoom"
android:actionViewClass="android.support.v7.widget.SearchView" />
当我运行我的应用程序时,我遇到了这个例外:
02-17 11:09:38.384: E/AndroidRuntime(5064): FATAL EXCEPTION: main
02-17 11:09:38.384: E/AndroidRuntime(5064): android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
02-17 11:09:38.384: E/AndroidRuntime(5064): at android.view.LayoutInflater.createView(LayoutInflater.java:606)
02-17 11:09:38.384: E/AndroidRuntime(5064): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
如果我评论这些代码
// searchView.setSearchableInfo(
// searchManager.getSearchableInfo(getComponentName()));
// searchView.setIconifiedByDefault(false);
该计划运作良好。
请帮忙
答案 0 :(得分:2)
更改
android:actionViewClass="android.support.v7.widget.SearchView" />
到
yourapp:actionViewClass="android.support.v7.widget.SearchView" />
参考:看看添加动作视图@
http://developer.android.com/guide/topics/ui/actionbar.html
当您尝试使用大图像时,通常会出现 OutOfMemory
。你的内存耗尽导致OOM。
如果遇到这样的错误,请确保缩小图像。