Monodroid Tab Layout示例项目似乎不起作用

时间:2011-12-10 11:33:24

标签: android xamarin.android

我正在与Xamarin网站上显示的Tab Layout example进行斗争。我已经创建了状态列表可绘制的xml文件,并将图标复制到我的drawable目录,如上所述,但是我在使用OnCreate方法时遇到了问题。

他们列出的OnCreate方法显然已被破坏,因为它缺少TabHost实例化。但即使通过调用

来解决这个问题
  

var TabHost = new TabHost(this);

我仍然得到一个空引用异常。这是OnCreate的完整源代码,直到它抛出的行:

 protected override void OnCreate(Bundle bundle)
        {
        base.OnCreate(bundle);
        SetContentView(Resource.Layout.Main);
        var TabHost = new TabHost(this);
        TabHost.TabSpec spec;     // Resusable TabSpec for each tab
        Intent intent;            // Reusable Intent for each tab

        // Create an Intent to launch an Activity for the tab (to be reused)
        intent = new Intent(this, typeof(StopWatchActivity));
        intent.AddFlags(ActivityFlags.NewTask);

        // Initialize a TabSpec for each tab and add it to the TabHost
        spec = TabHost.NewTabSpec("Stoppuhr");
        spec.SetIndicator("Artists", Resources.GetDrawable(Resource.Drawable.ic_tab_artists_grey));
        spec.SetContent(intent);
        //Crashes with a null reference exception
        TabHost.AddTab(spec);
        ...
}

为什么TabHost.AttTab会使我的应用程序崩溃并引用空引用异常?

作为替代方案,如果您可以下载一个完整工作的示例项目,显示使用Monodroid的选项卡布局,我很乐意将其用作参考。

1 个答案:

答案 0 :(得分:3)

在Xamarin的GitHub上的MonoDroid样本中有一个关于APIDemo的例子:https://github.com/xamarin/monodroid-samples/blob/master/ApiDemo/Tutorials/TabLayoutTutorial.cs

您的活动是否继承TabActivity? (

var TabHost = new TabHost(this);

根本不需要。)

我希望这有帮助,

ChrisNTR