3

我拼命想让 ZXing.Mobile 在 Xamarin VS2012 C# 中工作,但我很难在网上找到任何东西来回答我的问题!:(

这是我的代码:

bnGetComp.Click += (sender, e) =>
{
    var scanner = new ZXing.Mobile.MobileBarcodeScanner(this);

    scanner.Scan().ContinueWith((t) =>
    {
        if (t.IsFaulted)
        {
            aTbCompName.Text = t.Exception.ToString();
        }
        else if (t.Result != null)
        {
            aTbCompName.Text = t.Result.Text;
        }
    });
};

我的手机启动扫描仪,然后扫描条形码,然后清空文本框,我什至尝试让它只用字符串值填充 aTbCompName.text,即“TEST”,但它仍然清空它!我不明白它在做什么,我不能在它上面设置一个断点,因为这似乎并没有在 Xamarin 中做所有错误......

(手机是运行官方 JB 4.1.2 的三星 Galaxy Note N7000)

任何人都可以帮忙吗?

更新:

我一直在玩它,如果我之后旋转手机它确实有效,知道为什么在扫描条形码后旋转会完成该过程并将结果放入文本框中?

4

1 回答 1

3

这可能有效,也可能无效,但我的代码在 UI 线程上运行 UI 更新...请参见下面的代码...

scanner.Scan().ContinueWith(t =>
RunOnUiThread(
    () =>
    {
        searchBar.Text = t.Result.Text;
        var intent = new Intent(this, typeof(SearchResultsActivity));
        intent.PutExtra("Description", searchBar.Text);
        StartActivity(intent);
    }));
于 2013-06-09T04:33:59.543 回答