我是Android开发的新手,仍在尝试掌握一些概念。我发现最好的学习方法是直接进入项目的最深处。话虽如此,这是我的问题:
我已将ZXing Android Embedded集成到我的应用程序中;但是,我在理解您使用IntentIntegrator的方式时遇到了麻烦。目前,我要做的就是在用户点击按钮时将QR扫描仪调用到屏幕上。我一直在尝试按照他们的github链接[这里] [1]上的说明进行操作,但未成功。
到目前为止,这是我的功能:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
IntentIntegrator integrator = new IntentIntegrator(this);
IntentIntegrator.forFragment(this).initiateScan();
}
});
我不断收到错误消息:
错误:(109,25)错误:类中的构造函数IntentIntegrator
IntentIntegrator不能应用于给定类型;必填:活动
找到:Intent原因:实际参数Intent无法转换为
按方法调用转换活动
另外,当我将鼠标放在Android Studio中的“(this)”上时,它表示:
匿名android.view.View.onClickListener
任何帮助将不胜感激,谢谢!如果您需要其他任何信息,请告诉我。
最佳答案
比ChrisStillwell的解决方案更简单的解决方案是使您的活动/片段类实现OnClickListener
,这样您就不需要引用变量:
public class SomeFragment extends Fragment implements View.OnClickListener {
// Rest of your code
@Override
public void onClick(View v) {
if (v.getId == button.getId) {
IntentIntegrator integrator = new IntentIntegrator(getActivity());
IntentIntegrator.forFragment(this).initiateScan();
}
}
}
如果要实现片段类,请注意在创建
getActivity()
时必须调用IntentIntegrator
。