gpt4 book ai didi

c# - Android 7.0 上不会调用 OnCreateOptionsMenu

转载 作者:太空宇宙 更新时间:2023-11-03 11:00:49 26 4
gpt4 key购买 nike

正如标题中提到的,在我将系统更新到 Android 7.0 后,OnCreateOptionsMenu 方法没有被调用。

在更新之前,我使用的是 Android 6.0,它运行没有任何问题。如果我用 6.0 在我的另一部手机上测试它,它仍然可以工作(相同的代码)。

这个方法在Android 7.0上有问题还是我的代码有问题?

我设置 toolbar 的 MainActivity.cs 部分

[Activity(Label = "App", Icon = "@drawable/icon", MainLauncher = true, Theme = "@style/Theme.AppCompat.Light.NoActionBar",ScreenOrientation = Android.Content.PM.ScreenOrientation.Portrait)]
public class MainActivity : AppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);

var toolbar = FindViewById<Android.Widget.Toolbar>(Resource.Id.toolbar);
toolbar.SetTitleTextColor(Color.White);
SetActionBar(toolbar);
}

public override bool OnCreateOptionsMenu(IMenu menu)
{
MenuInflater.Inflate(Resource.Menu.top_menu_start, menu);
return base.OnCreateOptionsMenu(menu);
}
}

Main.axml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#1D1D1D"
android:theme="@android:style/ThemeOverlay.Material.Dark.ActionBar" />
</RelativeLayout>

top_menu_start

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/start_listview"
android:icon="@drawable/icon_posts_list"
android:showAsAction="ifRoom"
android:title="startListview" />
<item
android:id="@+id/start_pager"
android:icon="@drawable/icon_posts_kacheln"
android:showAsAction="ifRoom"
android:title="startPager" />
<item
android:id="@+id/doSomething"
android:icon="@drawable/icon"
android:showAsAction="ifRoom"
android:title="doSomething" />
</menu>

最佳答案

由于您使用的是 AppCompatActivity,因此您应该使用 Android.Support.V7.Widget.Toolbar 而不是 Android.Widget.Toobar 并且调用 SetSupportActionBar 而不是 SetActionBar。现在您的 OnCreateOptionsMenu 将被调用。

OnCreate 覆盖:

base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
toolbar.SetTitleTextColor(Color.White);
SetSupportActionBar(toolbar);

Main.axml 更新:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#1D1D1D" android:theme="@android:style/ThemeOverlay.Material.Dark.ActionBar">
</android.support.v7.widget.Toolbar>

关于c# - Android 7.0 上不会调用 OnCreateOptionsMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43721141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com