我知道其他一些人遇到了这个问题,但我已经遵循了解决方案,但它仍然对我不起作用。
我创建了一个新应用程序,它有 1 个活动,其中有 1 个按钮(扫描按钮)和 2 个文本视图(它们将输出 Zxing 目前返回的格式名称和内容)。
我已按照 ScanningViaIntent 教程进行操作,但似乎没有成功onActivityResult
下面是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final IntentIntegrator integrator = new IntentIntegrator(this);
Button btnScan = (Button) findViewById(R.id.button1);
btnScan.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
integrator.initiateScan();
}
});
}
public void OnActivityResult(int requestCode, int resultCode, Intent intent)
{
Log.i("result", "hit line");
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
TextView tv1 = (TextView) findViewById(R.id.textView1);
TextView tv2 = (TextView) findViewById(R.id.textView2);
if(scanResult != null)
{
System.out.println("format: " + scanResult.getFormatName());
System.out.println("contents: " + scanResult.getContents());
tv1.setText(scanResult.getFormatName());
tv2.setText(scanResult.getContents());
}
else
{
tv1.setText("ERROR");
}
}
TextView1 从不说“错误”,因此 scanResult 似乎不是 null 并且我的 Log.i() 行从未被击中,所以我认为它onActivityResult
甚至没有被击中。
这可能与final
为 OnClick() 方法制作 IntentIntegrator 有关吗?当我在 OnClick() 中创建 IntentIntegrator 时,我使用 getParent() 将 Activity 传递给构造函数,但这强制关闭了我的应用程序,并在 IntentItegrator 中出现 NullReferenceException。
我是否正确使用图书馆?
谢谢你的时间,
雨披