geo*_*iva 4 default-constructor nullreferenceexception xamarin.android
我是使用Xamarin.Android进行Android开发的新手,我想了解如何解决下一个问题.
有时,从后台恢复我的Android应用程序后,我面临的下一个错误:
Unable to find the default constructor on type MainMenuFragment.在MainMenuFragment使用应用程序NavigationDrawerActivity允许用户在应用程序中不同的片段之间切换.
为了解决这个问题,我MainMenuFragment在下一个链接中添加了一个默认构造函数:
public class MainMenuFragment : DialogFragment
{
readonly NavigationDrawerActivity navigationDrawer;
#region Constructors
public MainMenuFragment () {} // Default constructor...
public MainMenuFragment (NavigationDrawerActivity navigationDrawer, IMenuType launchMenu = null)
{
if (navigationDrawer == null)
throw new ArgumentNullException ("navigationDrawer");
this.navigationDrawer = navigationDrawer;
...
Fragment UpdateTopFragmentForCurrentMenu (Fragment newMenuRootFragment = null)
{
Fragment currentMenuRootFragment = navigationDrawer.CurrentFragment; // issued line.
Run Code Online (Sandbox Code Playgroud)但是现在在将来的某个时候,MainMenuFragment使用其默认构造函数初始化,并且在第一次尝试访问其navigationDrawer时,它会抛出System.NullReferenceException:
System.NullReferenceException: Object reference not set to an instance of an object
at MainMenuFragment.UpdateTopFragmentForCurrentMenu (Android.App.Fragment) <0x00018>
at MainMenuFragment.OpenMenu (IMenuType,bool) <0x0006b>
at MainMenuFragment.OnCreate (Android.OS.Bundle) <0x00053>
at Android.App.Fragment.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) <0x0005b>
at (wrapper dynamic-method) object.3919a6ec-60c1-49fd-b101-86191363dc45 (intptr,intptr,intptr) <0x00043>
Run Code Online (Sandbox Code Playgroud)
如何在不面对此空引用异常的情况下实现默认构造函数?
你的编程就像一个C#开发人员,这就是问题所在:)我面临同样的障碍学习monodroid.
看看那里的例子,在java中,你几乎可以看到他们使用静态方法初始化,如object.NewInstance()返回object.这是他们初始化他们的视图/接收器/片段的方式.此时,他们填充Arguments属性并将其存储在片段中.您需要删除所有构造函数,除了空构造函数,并使用参数传递数据.如果你尝试使用构造函数和常规oo概念来实现这一点,那么你将陷入一个受伤的世界.Arguments.putExtra和所有这些方法都在那里.它使事情变得有点冗长,但是一旦掌握了它,你就会开始创建一些辅助方法等.
一旦你对它进行了排序,你就需要弄清楚每次恢复活动时是否需要重新创建碎片,如果没有,请将它们标记RetainInstance = true为将它们放到碎片管理器上,这将帮助您保留所有状态.
如果你没有建立在android之前它很奇怪,当然不是我的预期.但它真的很酷,比我预期的要好得多.和Xamarin一样.
类似的问题:实例化新Android片段的最佳实践
| 归档时间: |
|
| 查看次数: |
3124 次 |
| 最近记录: |