java - 将 Java 匿名回调类转换为 C#

标签 java c# xamarin

我是 Xamarin Android 的初学者,我必须测试手机 Honeywell Dolphin CT 50 的扫描仪。

我的项目编译得很好,我已经很好地添加了 Honey 中的 jar 库,但我现在的问题是一些 Java 代码。

我无法将其翻译成 C#!

这是代码:

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // create the AidcManager providing a Context and a
    // CreatedCallback implementation.
    AidcManager.create(this, new CreatedCallback() {

        @Override
        public void onCreated(AidcManager aidcManager) {
            manager = aidcManager;
            barcodeReader = manager.createBarcodeReader();
        }
    });

    ActivitySetting();
}

我的问题是翻译该方法的第二个参数:

AidcManager.create => new CreatedCallback() ?

如何将其转换为 C#?

最佳答案

您可以使用 lambda,但是一旦您有多个方法需要重写,它就会崩溃。单独的类是处理一般情况的方法:

public virtual void onCreate(Bundle savedInstanceState)
{
    base.onCreate(savedInstanceState);
    ContentView = R.layout.activity_main;

    // create the AidcManager providing a Context and a
    // CreatedCallback implementation.
    AidcManager.create(this, new CreatedCallbackAnonymousInnerClassHelper());

    ActivitySetting();
}

private class CreatedCallbackAnonymousInnerClassHelper : CreatedCallback
{
    public override void onCreated(AidcManager aidcManager)
    {
        manager = aidcManager;
        barcodeReader = manager.createBarcodeReader();
    }
}

关于java - 将 Java 匿名回调类转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37680256/

相关文章:

java - 在android studio中创建新项目后"IDE error occurred"

java - 从 Activity 保存图像时显示进度条

java - java代码中的HTML解析异常org.xml.sax.SAXParseException

c# - 如何在 C# 中获取 Mac OSX 当前用户的目录?

java - 在 avro 中存储模式有什么好处?

c# - LINQ to SQL - 不支持 ToDictionary - 如何将结果拉入内存?

c# - Sqlite3 数据库损坏 - 在 Xamarin 中修复

ios - 在 Xamarin 中绑定(bind) Block 的方法

c# - 在 ViewModel 构造函数中添加 Api 接口(interface),导航停止工作 Prism

sqlite - 如何使用Azure移动服务正确同步Xamarin iOS Sqlite