Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android上未出现操作按钮_Java_Android_Android Fragments_Android Actionbar - Fatal编程技术网

Java Android上未出现操作按钮

Java Android上未出现操作按钮,java,android,android-fragments,android-actionbar,Java,Android,Android Fragments,Android Actionbar,我一直试图在我的Android应用程序上安装一个动作按钮,但失败得很惨。我读了这么多的问题和答案,似乎什么都不管用。视频链接总是出现在我不想要的菜单中 这是菜单Xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:puertogaleradivesites="http://schemas.android.com/apk/res-auto" > <!-- Search, shoul

我一直试图在我的Android应用程序上安装一个动作按钮,但失败得很惨。我读了这么多的问题和答案,似乎什么都不管用。视频链接总是出现在我不想要的菜单中

这是菜单Xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:puertogaleradivesites="http://schemas.android.com/apk/res-auto" >
<!-- Search, should appear as action button -->
<item android:id="@+id/youtube"
      android:icon="@drawable/ic_play_arrow_black_24dp"
      android:title="YouTube"
      puertogaleradivesites:showAsAction="ifRoom"/>
<item android:id="@+id/action_settings"
      puertogaleradivesites:showAsAction="never"
      android:title="Settings"/>
</menu>
这里是主要的Java片段

public class DivesiteFragment extends Fragment {
private Divesite mDivesite;
private TextView mDepthField;
private TextView mSiteDescription;
private TextView mDistance;
private ProportionalImageView mImageView;
public static final String EXTRA_SITE_ID = "com.blueribbondivers.extraSiteID";
private Context mContext;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    UUID crimeId = (UUID)getActivity().getIntent()
            .getSerializableExtra(EXTRA_SITE_ID);
    mDivesite = DiveSites.get(getActivity()).getDiveSite(crimeId);
    mContext = getActivity().getApplicationContext();
    //getActivity().getActionBar().setTitle(Html.fromHtml("<font color=\"#1c3565\">" + mDivesite.getName() + "</font>"));

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_divesite, parent, false);
    Resources resources = mContext.getResources();
    //setHasOptionsMenu(true);
    mDepthField = (TextView)v.findViewById(R.id.divesite_display_depth);
    mDepthField.setText(mDivesite.getMaxDepth());
    mSiteDescription = (TextView)v.findViewById(R.id.divesite_display_description);
    mSiteDescription.setText(mDivesite.getSiteDescription());
    mSiteDescription.setMovementMethod(new ScrollingMovementMethod());
    mDistance = (TextView)v.findViewById(R.id.divesite_display_distance);
    mDistance.setText(mDivesite.getTravelTime());
    mImageView = (ProportionalImageView)v.findViewById(R.id.divesite_display_imageView);
    String imageName = mDivesite.getPhoto();
    final int resourceID = resources.getIdentifier(imageName,"drawable",mContext.getPackageName());
    mImageView.setImageResource(resourceID);
    setHasOptionsMenu(true);

    return v;
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.divesitemenu, menu);
    super.onCreateOptionsMenu(menu,inflater);
}
}
我在Github上也有完整的项目


如需任何帮助,将不胜感激。

如需显示Youtbe、gmail等菜单:

您应该始终使用您的应用程序:showAsAction=always


希望它能对你有所帮助。

你的活动范围扩大了。如果您想要一个向后兼容的操作栏,它可以在所有API级别上运行,API 21中的情况发生了显著的变化,那么您应该扩展它。如果您想将ActioBar项a显示为按钮而不是溢出菜单,那么您需要为它定义一个android:orderInCategory。这样它就不会出现在溢出菜单中

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_magnify"
        android:orderInCategory="100"
        app:showAsAction="ifRoom|collapseActionView"
        android:title="@string/noticiation_count"/>

</menu>

测试和工作完美的碎片

你想要什么?我没听清楚?对不起,应该说清楚一点。该菜单作为下拉菜单加载。YouTube菜单项android:id=@+id/YouTube进入设置菜单,没有显示为按钮,它被添加到溢出菜单。这对我不起作用,不确定是否是因为不同的片段。我使用的是全息主题,不确定这是否会有所不同。这也删除了我的额外设置菜单。它仍然只是将youtube链接放在溢出菜单中
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_magnify"
        android:orderInCategory="100"
        app:showAsAction="ifRoom|collapseActionView"
        android:title="@string/noticiation_count"/>

</menu>
setHasOptionsMenu(true);