繁体   English   中英

Xamarin Android:无法使用ActionBarActivity

[英]Xamarin Android: Cannot use ActionBarActivity

我无法在应用程序中使用ActionBarActivity,因为我无法导入它。 我尝试添加Android支持库4,7,13和17 ...

Nr.7、13和17不起作用,因为“项目未引用某些必需的软件包”。 我还没有弄清楚那是什么意思。

Nr.4不起作用,因为“找不到类型或名称空间名称'ActionBarActivity'(您是否缺少using指令或程序集引用?)C:\\ progge \\ Apper \\ AkvaApp \\ AkvaApp \\ AkvaApp \\ Browser。 cs“ ...,即使应该将ActionBarActivity包含在组件中。

我一次又一次地建造和重建。

这是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.Support.V4;
using Xamarin;

namespace AkvaApp
{
    [Activity(Label = "Browser")]
    public class Browser : ActionBarActivity, ActionBar.ITabListener
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SupportRequestWindowFeature(WindowCompat.FeatureActionBar);

            ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;
            SetContentView(Resource.Layout.BrowserLayout);
            ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;
            ActionBar.Tab tab = ActionBar.NewTab();
            tab.SetText(Resources.GetString(Resource.String.SearchTabText));
            tab.TabSelected += (sender, args) =>
            {
                Android.Util.Log.Info(this.Class.Name, "this is an info message");
                Android.Util.Log.Warn(this.Class.Name, "this is a warning message");
                Android.Util.Log.Error(this.Class.Name, "this is an error message");
            };

        }

        public void OnTabReselected(ActionBar.Tab tab, FragmentTransaction ft)
        {
            throw new NotImplementedException();
        }

        public void OnTabSelected(ActionBar.Tab tab, FragmentTransaction ft)
        {
            throw new NotImplementedException();
        }

        public void OnTabUnselected(ActionBar.Tab tab, FragmentTransaction ft)
        {
            throw new NotImplementedException();
        }
    }
}

怎么了

我仍然没有设法在Visual Studio中运行它,但是我确实在Xamarin Studio中进行了管理。 在Visual Studio中添加支持库v7完全没有帮助,但是在Xamarin Studio中添加它修复了它。

对于Xamarin Studio:右键单击项目(不是解决方案),单击添加->添加NuGet程序包,搜索“支持库v7”,选中一个名为AppCompat的程序,然后单击添加程序包。 然后在需要此库的类中,添加“ using Android.Support.V7;”。

如Martijn所述,ActionBarActivity是Support Library v7 AppCompat的一部分

https://developer.android.com/reference/android/support/v7/app/ActionBarActivity.html

  1. 创建一个新的Xamarin.Android空白项目(确保目标框架设置为API 21)
  2. 通过Nuget安装Android支持库v7 AppCompat- https: //www.nuget.org/packages/Xamarin.Android.Support.v7.AppCompat/
  3. 尝试从静态上下文访问时,将Android.App.ActionBar替换为ActionBar
  4. 请注意, deprecated建议使用ActionBar TabListener,而应改用其他模式( http://developer.android.com/design/patterns/navigation.html

您需要将nuget包添加到Support Library v7 AppCompat才能使用ActionBarActivity。 Xamarin的James Montemagno在以下网站中对此进行了解释: http : //blog.xamarin.com/android-support-library-v7-hello-actionbarcompat/

如果您想知道为什么“项目未引用某些必需的软件包”,则应查看软件包控制台以了解实际的错误消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM