来自docs: https://developer.android.com/guide/topics/ui/actionbar.html#ActionItems
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
yourapp:showAsAction="ifRoom|collapseActionView" />
...
</menu>
有效。但该项目保留在所有碎片上。
我需要在ActionBar中使用不同的操作项。
我创建了一些菜单文件并尝试在不同的部分使用它们,但它不起作用。
我只看到类中的第一个Action项扩展了ActionBarActivity。
来自片段:
public class Foods extends Fragment implements View.OnClickListener, SearchView.OnQueryTextListener
...
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
inflater.inflate(R.menu.showinfo_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
// Configure the search info and add any event listeners
searchView.setQueryHint(getResources().getString(R.string.search));
searchView.setOnQueryTextListener(this);
super.onCreateOptionsMenu(menu, inflater);
}
答案 0 :(得分:0)
我刚刚发现了我的错误。
如果你想让ActionBar的碎片项有效,你应该添加它: http://developer.android.com/reference/android/app/Fragment.html#setHasOptionsMenu(boolean)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
...