我拼命想让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)
有人可以帮忙吗?
更新
我一直在玩它并且如果我之后旋转手机它确实有效,任何想法为什么在条形码被扫描后旋转然后完成该过程并将结果放入文本框?
答案 0 :(得分: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);
}));