我正在尝试在我的应用栏上实现一个菜单,但为什么我无法在资源下找到它?正如您所看到的,它的名称下面有红色。我试图右键单击它,但它只说生成菜单方法。我无法重建和部署它,因为它给了我那种奇怪的错误。此后发生的事情是我的VS甚至无法读取资源本身。如果我添加其他活动或删除它或重新启动VS,我只能解决它。
这是我的菜单文件夹。
] 2
以下是我的活动完整代码
using System;
using Android.App;
using Android.OS;
using Android.Views;
using Android.Widget;
using Android.Support.V7.App;
using Android.Support.V7.Widget;
using SupportToolbar = Android.Support.V7.Widget.Toolbar;
using Entities;
namespace RBankCI
{
[Activity(Label = "PDRN", MainLauncher = true, Theme = "@style/Theme.FullScreenBaseDesign")]
public class Activity_PDRN : AppCompatActivity, IActivityInterface
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Layout_PDRNForm);
Title = string.Empty;
i1_setupActionBar();
}
public void i1_setupActionBar()
{
// Initialize Support ToolBar
SupportToolbar toolBar = FindViewById<SupportToolbar>(Resource.Id.toolBar);
toolBar.SetBackgroundResource(Resource.Drawable.AppBarBackgrounWithTitle);
SetSupportActionBar(toolBar);
SupportActionBar.SetDisplayHomeAsUpEnabled(true);
}
public void i2_initialization()
{
throw new NotImplementedException();
}
public void i3_deserializeIntentExtras()
{
throw new NotImplementedException();
}
public void i4_setUpAllClickable()
{
throw new NotImplementedException();
}
public void i5_setTextChangeBehaviour()
{
throw new NotImplementedException();
}
public void i6_setTextFieldValues()
{
throw new NotImplementedException();
}
#region Override OnCreateOptionsMenu()
/// <summary>
/// Create a menu setting
/// </summary>
/// <param name="menu">Menu</param>
/// <returns></returns>
public override bool OnCreateOptionsMenu(IMenu menu)
{
//Here is the problem. My VS can't read the Menu after Resource
// Create Menu Action
MenuInflater.Inflate(Resource.Menu.menu_form, menu);
return true;
}
#endregion
#region Override OnOptionsItemSelected()
/// <summary>
/// Event when a user clicks one of the ActionBar Icons
/// </summary>
/// <param name="item">Action Item</param>
/// <returns></returns>
public override bool OnOptionsItemSelected(IMenuItem item)
{
// Open Navigation Drawer
switch (item.ItemId)
{
// User click menu icon
case Android.Resource.Id.Home:
OnBackPressed();
return true;
case Android.Resource.Id.menu_clear: //here, I can see and error a constant value is expected. This id is under the menu_form.xml
Toast.MakeText(this, "Clear All Fields", ToastLength.Short).Show();
return true;
case Resource.Id.menu_attach: //here, I can see and error a constant value is expected. This id is under the menu_form.xml
Toast.MakeText(this, "Attach Photo", ToastLength.Short).Show();
return true;
default:
return base.OnOptionsItemSelected(item);
}
}
#endregion
#region Override OnBackPressed()
/// <summary>
/// Override OnBackPressed
/// </summary>
public override void OnBackPressed()
{
try
{
Finish();
}
catch (Exception e)
{
Toast.MakeText(this, ENT_NegativeResponse.somethingWentWrong, 0).Show();
}
}
#endregion
}
}
这是我的menu_form.xml
<?xml version="1.0" encoding="utf-8" ?>
<!--For all properties see: http://developer.android.com/guide/topics/resources/menu-resource.html-->
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!-- Declaring Menu Actions -->
<item
android:id="@+id/menu_clear"
android:title="Clear All Fields"
android:icon="@drawable/ic_clear_fields_png_x3"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/menu_attach"
android:title="Attach Photo"
android:icon="@drawable/ic_attach_image_png_x3"
app:showAsAction="ifRoom"/>
</menu>
答案 0 :(得分:1)
使用此 - :
div
在这种情况下导入当前包的R文件
答案 1 :(得分:0)
资源 - XAMARIN
下缺少菜单
检查Resource.designer.cs
中是否已生成资源ID。
在我的项目中,资源ID为:
public partial class Id
{
...
// aapt resource value: 0x7f0b007b
public const int menu_attach = 2131427451;
// aapt resource value: 0x7f0b007a
public const int menu_clear = 2131427450;
...
}
...
public partial class Menu
{
// aapt resource value: 0x7f0d0000
public const int menu_form = 2131558400;
static Menu()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Menu()
{
}
}
如果尚未生成,通常清理并重建项目将再次生成它,除非某处出现语法错误。
答案 2 :(得分:0)
<强>更新强>
为Visual Studio更新Xamarin解决了资源下缺少菜单的问题。
后得到蓝绿色我从我的Resource.Designer.cs找回了它,虽然它下面还有一条消息:&#39;资源&#39;不包含&#39;菜单&#39;的定义对于他们拥有的按钮&#34;需要一个恒定的值&#34;。但它仍在使用红线。
供其他人参考,这就是我所做的。
我的VS.Xamarin之前我的菜单很好,直到它提示我有消息说它无法识别。以下是我尝试的步骤:
1.重新启动VS
2.删除项目
下的bin和obj
3.删除了user / appdata / local / xamarin
下的xamarin文件夹内容
4.尽可能多地清洁和重建
5.在资源
下创建新的菜单文件夹
6.从添加按钮创建菜单文件,但我认为这也是一个问题
Soution的一部分
添加按钮下的菜单生成menu_form.xml文件,而xamarin读取.axml格式。所以我的解决方案是创建一个布局,复制我的menu_form.xml,然后清理然后重建。菜单,menu_form及其元素在此之后显示为Resource.Designer.cs。
这对我来说实际上是一个问题,因为它之前正在工作但突然停止并给了我一个错误 我仍然有一个关于Resource.Menu的错误,从一开始就用红线一样,但它运行良好。我不知道为什么我的VS会给我这个错误。
答案 3 :(得分:0)