不能在Xamarin.Android
创建动作条我试图创建actionbar
背部按钮,但它不显示不能在Xamarin.Android
public override bool OnCreateOptionsMenu(IMenu menu) {
MenuInflater.Inflate(Resource.Menu.ActionBarMenu, menu);
return base.OnCreateOptionsMenu(menu);
}
public override bool OnOptionsItemSelected(IMenuItem item) {
this.Finish();
return base.OnOptionsItemSelected(item);
}
这是动作条xml文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id = "@+id/actionBack"
android:icon ="@drawable/arrow_l_black"
android:title="Back"
android:showAsAction="always" />
</menu>
上午我遗漏了什么?
如果你只是想显示后退按钮,并且您使用API 14+,那么你可以简单地这样做:
[Activity(Label = "Main", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
var button = FindViewById<Button>(Resource.Id.MyButton);
button.Click += (sender, args) =>
{
var intent = new Intent(this, typeof (SecondActivity));
StartActivity(intent);
};
}
}
[Activity(Label = "Second", ParentActivity = typeof(MainActivity))]
public class SecondActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
ActionBar.SetDisplayShowHomeEnabled(true);
}
public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
case Android.Resource.Id.Home:
NavigateUpTo(ParentActivityIntent);
break;
}
return base.OnOptionsItemSelected(item);
}
}
所以会发生什么是MainActivity
按下按钮时启动SecondActivity
。在SecondActivity
的OnCreate
中,您要求显示后退按钮。然后在OnOptionsItemSelected
您等待Android.Resource.Id.Home
是按下的项目的ID。这是后退按钮的默认ID。发生这种情况时,您可以调用内置的NavigateUpTo
方法(在使用支持v4的API级别较低时在NavUtils中)告诉Activity
导航至Activity
属性标志中设置的ParentActivity
。
ParentActivity
通过MetaData
属性标志设置上比API 14,API水平较低,像这样:
[Activity(...)]
[MetaData("android.support.PARENT_ACTIVITY", Value = "app9.MainActivity")]
public class SecondActivity : Activity { ... }
凡app9
是我的命名空间小写。
使用OnCreateOptionsMenu
从XML文件充气菜单用于创建其他ActionBar
项目。在这种情况下,它会在右侧创建一个按钮,并带有向后箭头或您定义的@drawable/arrow_l_black
Drawable
。
我会检查一下,谢谢你的回答。 – arsena 2014-10-07 16:21:09
你确定,你在膨胀正确的资源吗?不应该是Resource.Menu.actionbar? – Stam 2014-10-07 08:25:37
但xml文件名是ActibarMenu。 http://i.imgur.com/21Kzzig.png – arsena 2014-10-07 08:33:05
您是否正在使用硬件菜单按钮在设备上进行测试?如果你按下它会发生什么? – Cheesebaron 2014-10-07 11:22:41