我是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

09-12 18:53