我正在与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的选项卡布局,我很乐意将其用作参考。
答案 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