Java QR扫描仪视图按钮

Java QR扫描仪视图按钮,java,android,android-activity,Java,Android,Android Activity,我是安罗伊德开发公司的大三学生。 我已经实现了一个用于读取二维码的库。我需要在扫描仪的视图中添加一个按钮以切换到另一个屏幕。但不能在扫描仪的活动中执行此操作。错误,错误,错误。你能帮助我吗? 对不起我的英语 扫描器的活动 package com.example.qr_readerexample; import android.Manifest; import android.content.Intent; import android.content.pm.PackageManager; im

我是安罗伊德开发公司的大三学生。 我已经实现了一个用于读取二维码的库。我需要在扫描仪的视图中添加一个按钮以切换到另一个屏幕。但不能在扫描仪的活动中执行此操作。错误,错误,错误。你能帮助我吗? 对不起我的英语

扫描器的活动

package com.example.qr_readerexample;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.PointF;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import com.dlazaro66.qrcodereaderview.QRCodeReaderView;
import com.dlazaro66.qrcodereaderview.QRCodeReaderView.OnQRCodeReadListener;

import static com.example.qr_readerexample.R.layout.content_decoder;

public class DecoderActivity extends AppCompatActivity
    implements ActivityCompat.OnRequestPermissionsResultCallback, OnQRCodeReadListener{



  private static final int MY_PERMISSION_REQUEST_CAMERA = 0;

  private ViewGroup mainLayout;

  private TextView resultTextView;
  private QRCodeReaderView qrCodeReaderView;
  private CheckBox flashlightCheckBox;
  private CheckBox enableDecodingCheckBox;
  private PointsOverlayView pointsOverlayView;
  private Button btnActTwo;




    @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_decoder);

    mainLayout = (ViewGroup) findViewById(R.id.main_layout);

    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
        == PackageManager.PERMISSION_GRANTED) {
      initQRCodeReaderView();
    } else {
      requestCameraPermission();
    }
  }


  @Override protected void onResume() {
    super.onResume();

    if (qrCodeReaderView != null) {
      qrCodeReaderView.startCamera();
    }
  }

  @Override protected void onPause() {
    super.onPause();

    if (qrCodeReaderView != null) {
      qrCodeReaderView.stopCamera();
    }
  }

  @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
      @NonNull int[] grantResults) {
    if (requestCode != MY_PERMISSION_REQUEST_CAMERA) {
      return;
    }

    if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
      Snackbar.make(mainLayout, "Camera permission was granted.", Snackbar.LENGTH_SHORT).show();
      initQRCodeReaderView();
    } else {
      Snackbar.make(mainLayout, "Camera permission request was denied.", Snackbar.LENGTH_SHORT)
          .show();
    }
  }

  // Called when a QR is decoded
  // "text" : the text encoded in QR
  // "points" : points where QR control points are placed
  @Override public void onQRCodeRead(String text, PointF[] points) {
    resultTextView.setText(text);
    pointsOverlayView.setPoints(points);
  }

  private void requestCameraPermission() {
    if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
      Snackbar.make(mainLayout, "Camera access is required to display the camera preview.",
          Snackbar.LENGTH_INDEFINITE).setAction("OK", new View.OnClickListener() {
        @Override public void onClick(View view) {
          ActivityCompat.requestPermissions(DecoderActivity.this, new String[] {
              Manifest.permission.CAMERA
          }, MY_PERMISSION_REQUEST_CAMERA);
        }
      }).show();
    } else {
      Snackbar.make(mainLayout, "Permission is not available. Requesting camera permission.",
          Snackbar.LENGTH_SHORT).show();
      ActivityCompat.requestPermissions(this, new String[] {
          Manifest.permission.CAMERA
      }, MY_PERMISSION_REQUEST_CAMERA);
    }
  }


  private void initQRCodeReaderView() {
    View content = getLayoutInflater().inflate(content_decoder, mainLayout, true);

    qrCodeReaderView = (QRCodeReaderView) content.findViewById(R.id.qrdecoderview);

    flashlightCheckBox = (CheckBox) content.findViewById(R.id.flashlight_checkbox);
    enableDecodingCheckBox = (CheckBox) content.findViewById(R.id.enable_decoding_checkbox);
    pointsOverlayView = (PointsOverlayView) content.findViewById(R.id.points_overlay_view);





    qrCodeReaderView.setAutofocusInterval(2000L);
    qrCodeReaderView.setOnQRCodeReadListener(this);
    qrCodeReaderView.setBackCamera();
    flashlightCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
      @Override public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
        qrCodeReaderView.setTorchEnabled(isChecked);
      }
    });
    enableDecodingCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
      @Override public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
        qrCodeReaderView.setQRDecodingEnabled(isChecked);
      }
    });
    qrCodeReaderView.startCamera();
还有我的纽扣

 Button btnActTwo;



 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnActTwo = (Button) findViewById(R.id.btnActTwo);
        btnActTwo.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btnActTwo:
                Intent intent = new Intent(this, ActivityTwo.class);
                startActivity(intent);
                break;
            default:
                break;
        }

    }
扫描仪布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".DecoderActivity"
    >

  <com.dlazaro66.qrcodereaderview.QRCodeReaderView
      android:id="@+id/qrdecoderview"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_alignParentLeft="true"
      android:layout_alignParentTop="true"
      />

  <com.example.qr_readerexample.PointsOverlayView
      android:id="@+id/points_overlay_view"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      />

  <CheckBox
      android:id="@+id/flashlight_checkbox"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:background="#99000000"
      android:checked="false"
      android:padding="16dp"
      android:text="Вкл/Выкл Вспышку"
      android:textColor="#ffffff"
      android:textSize="14sp"
      android:layout_marginBottom="18dp"
      android:layout_above="@+id/btnActTwo"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true" />

  <CheckBox
      android:background="#99000000"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="Вкл/Выкл Чтение штрих-кода"
      android:textSize="14sp"
      android:padding="16dp"
      android:textColor="#ffffff"
      android:id="@+id/enable_decoding_checkbox"
      android:checked="true"
      android:layout_above="@+id/flashlight_checkbox"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true" />

    <Button
        android:id="@+id/btnActTwo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentStart="true"
        android:background="#99000000"
        android:text="@string/constructions"
        android:textColor="#ffffff" />

</RelativeLayout>


按钮BTNACTWO是我的按钮。

欢迎使用StackOverflow。给我们看一份关于你的错误的日志。请参阅:发布扫描仪活动的布局文件添加扫描仪的布局