StartActivityForResult未触发OnActivityResult

时间:2014-03-25 14:02:54

标签: c# android xamarin

我正在使用Xamarin在C#中编写一个Android程序,它将扫描条形码(通过调用条形码扫描器应用程序),然后根据Web服务检查代码。

我无法从条形码扫描仪中获得结果。该应用程序似乎正在开始和结束,但OnActivityResult方法没有触发。

这是我的代码:

namespace AndroidApplication1
{
[Activity(Label = "AndroidApplication1", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.Main);

        //Start Barcode Scanner program
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        //intent.PutExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "ONE_D_MODE");
        StartActivityForResult(intent, 0);
    }

    public void OnActivityResult(int requestCode, int resultCode, Intent data)
    {
    }
}
}

我尝试过各种各样的事情,例如在OnActivityResult中使用'O'小写并取消注释intent.PutExtra等

有谁知道出了什么问题?

詹姆斯

1 个答案:

答案 0 :(得分:0)

更改您的方法,以便它覆盖基础Activity类:

protected override void OnActivityResult(int requestCode, int resultCode, Intent data)
{
}

您扩展的Activity类最有可能包含如下虚拟方法:

protected virtual void OnActivityResult(int requestCode, int resultCode, Intent data)
{
}

您当前正在隐藏基础虚拟方法,并且您的方法永远不会按原样“命中”。