作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试在 Android Fragments 中设置选项菜单。 ActionBar
选项菜单未显示在我的 fragment 中。
这是我的代码,我同时拥有 onCreateOptionsMenu()
和 onOptionSelected()
函数。我的代码没有显示任何错误。但是选项菜单没有显示。
package org.reachout;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import org.general.R;
public class ViewMessageFragment extends Fragment {
/* (non-Javadoc)
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
// We have different layouts, and in one of them this
// fragment's containing frame doesn't exist. The fragment
// may still be created from its saved state, but there is
// no reason to try to create its view hierarchy because it
// won't be displayed. Note this is not needed -- we could
// just run the code below, where we would create and return
// the view hierarchy; it would just never be used.
return null;
}
return (LinearLayout)inflater.inflate(R.layout.viewmessages_tab_fragment_layout, container, false);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.askexperts_menu, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// handle item selection
switch (item.getItemId()) {
case R.id.action_settings:
// do s.th.
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
最佳答案
你需要在onCreate()
中调用setHasOptionsMenu(true)
。
为了向后兼容,最好将此调用尽可能晚地放置在 onCreate()
的末尾,或者甚至稍后放置在 onActivityCreated()
或类似的地方。
见:https://developer.android.com/reference/android/app/Fragment.html#setHasOptionsMenu(boolean)
关于android - 如何在 Android Fragments 中添加操作栏选项菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18714322/
我是一名优秀的程序员,十分优秀!