c# - System.NotImplementedException C# Xamarin,Android

标签 c# android xamarin.android

我正在将 Android 应用程序移植到 Xamarin.android。该项目构建成功,但出现一些运行时错误。由于我是 Android 的 C# 编程新手,我无法弄清楚如何解决它:- 这是我的java代码:-

private Handler handler = new Handler(new Handler.Callback() {
    @Override
    public boolean handleMessage(Message msg) {
      if (msg.what == MSG_SURFACE_CREATED) {
        contentWidth = 0;
        contentHeight = 0;
        requestLayout();
        return true;
      } else {
        Log.w("Unknown msg.what: " + msg.what);
      }
      return false;
    }
  });

这是我在 C# 中尝试过的:-

private Android.OS.Handler handler = new Android.OS.Handler(new myCallback ());

        private class myCallback : Android.OS.Handler.ICallback //inner class
        {
            public myCallback()
            {
            }

            FlipViewController fp;    //Create instance of outer class 
            public myCallback(FlipViewController _fp) //pass the instance to constructor of inner class
            {
                fp = _fp;
            }
            #region ICallback implementation

            public bool HandleMessage (Message msg)
            {

                if (msg.What == MSG_SURFACE_CREATED)
                {
                    contentWidth = 0;
                    contentHeight = 0;

                    fp.RequestLayout ();

                    return true;
                }
                else
                {
                    FlipperzLog.w("Unknown msg.what: " + msg.What);
                }
                return false;
                throw new NotImplementedException ();
            }

            #endregion

            #region IDisposable implementation

            public void Dispose ()
            {
                throw new NotImplementedException ();
            }

            #endregion

            #region IJavaObject implementation

            public IntPtr Handle 
            {
                get {
                    throw new NotImplementedException ();  //Error here
                }
            }

            #endregion



Instance    {System.NotImplementedException: The requested feature is not implemented.
at Flipperz.FlipViewController/myCallback.get_Handle () [0x00001] in c:\Users\pooja.gaonkar\Documents\Projects\Flipperz\Flipperz\com.zevenpooja.flip\FlipViewController.cs:88
at Android.Runtime.JValue..ctor (Android.Runtime.IJavaObject) [0x00007] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.10.1-branch/d23a19bf/source/monodroid/src/Mono.Android/src/Runtime/JValue.cs:79
at Android.OS.Handler..ctor (Android.OS.Handler/ICallback) [0x000c1] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.10.1-branch/d23a19bf/source/monodroid/src/Mono.Android/platforms/android-18/src/generated/Android.OS.Handler.cs:152
at Flipperz.FlipViewController..ctor (Android.Content.Context,int) [0x0000b] in c:\Users\pooja.gaonkar\Documents\Projects\Flipperz\Flipperz\com.zevenpooja.flip\FlipViewController.cs:37
at Flipperz.FlipHorizontalActivity.OnCreate (Android.OS.Bundle) [0x00029] in c:\Users\pooja.gaonkar\Documents\Projects\Flipperz\Flipperz\com.zevenpooja.flipperz\FlipHorizontalActivity.cs:27
at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) [0x00011] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.10.1-branch/d23a19bf/source/monodroid/src/Mono.Android/platforms/android-18/src/generated/Android.App.Activity.cs:2178
at (wrapper dynamic-method) object.9482ba20-59f9-4425-b64d-e6ea29c92c79 (intptr,intptr,intptr) <IL 0x00017, 0x0001f>
}   System.NotImplementedException

最佳答案

我刚刚读过xamarin这里你必须继承Java.Lang.Object 所以对于界面来说应该是:

private class myCallback : Java.Lang.Object ,Android.OS.Handler.ICallback //inner class
{
}

看看上面是否有效

从java上的类直接继承(扩展)将是:

 class myHandler extends Handler {


        public myHandler(  /*your ctor*/ ) { 
        } 

        @Override
        public void handleMessage(Message msg) {

            // a message is received; 
            if (msg.obj != null) { 
                    Your_object content = (Your_object) msg.obj;
            }
            super.handleMessage(msg);
        }
    }

从 C# 上的类直接继承(扩展)将是:

class myHandler : Handler {


    public myHandler(  /*your ctor*/  ) { 
    }

    public override void handleMessage(Message msg) {

        // a message is received; 
        if (msg.obj != null) { 
        Your_object content = (Your_object) msg.obj;
        }
        base.handleMessage(msg);
    }
}

关于c# - System.NotImplementedException C# Xamarin,Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679309/

相关文章:

c# - Xamarin Android 和日期选择器

c# - 如何循环用户控件

c# - WP8列表框加载MVVM

c# - 将函数标记为异步但没有等待调用,有什么问题吗?

java - 使用 Atom Reader 阅读困难

java - 如何使用 Java 查找 ArrayList<Entry> 中的最小值和最大值

android - 从 URI 播放视频时无法播放此视频错误

android - 使用 Mono for Android 监听偏好变化

c# - 资源.Designer.cs : "Resource ... does not contain a definition for ..."

c# - 列表中的 wpf 扩展器在检查时并不总是执行命令