how do I use setContentView for an instance of ZBarScanner in a fragment

0

In an app that I made, on a qr reader, the first code block shown in onCreate () runs in the MainActivity.java file. Now in the code block next. in onCreateView () implement in a fragment, and I can not find the code that replaces .setContentView (). thanks

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnEscanear = findViewById(R.id.btnEscanear);
    etCodigoEscaneado = findViewById(R.id.etCodigoEscaneado);
    btnEscanear.setOnClickListener(new View.OnClickListener() {
    @Overrid
    public void onClick(View v) {
    vistaEscaner = new ZBarScannerView(getApplicationContext());
    vistaEscaner.setResultHandler(new zbarScanner());
    setContentView(vistaEscaner);
    etCodigoEscaneado.setText("Escaneando...");
    vistaEscaner.startCamera();
    }
  });
}
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
  Bundle savedInstanceState) {
  vista=inflater.inflate(R.layout.fragment_lector_qr, container, false);
  btnEscanear=vista.findViewById(R.id.btnEscanear);
  btnEscanear.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    Toast.makeText(getContext(), "onclick", Toast.LENGTH_SHORT).show();
    vistaEscaner = new ZBarScannerView(getContext());// Inicializar programáticamente la vista del escáner
    vistaEscaner.setResultHandler(new zbarScannerr());// Regístrese como un controlador para los resultados del análisis.
    ViewGroup contentFrame = vista.findViewById(R.id.content_main);
    contentFrame.addView(vistaEscaner);// Establecer la vista del escáner como la vista de contenido
    vistaEscaner.startCamera();// Iniciar la cámara en el currículum
    }
  });
  return vista;
}
    
asked by Walo M. La Voz 28.10.2018 в 17:40
source

1 answer

0

To close the camera it is advisable to follow these steps:

//Supongo qur tienes un método que sea handleResult o algo parecido
@Override
public void handleResult(final Result result)
{
   //Haces lo que necesitas con los resultado.
   vistaEscaner.removeAllViews(); //Esto limpiará las vies de la actividad que estes usando.
   vistaEscaner.stopCamera(); //Esto parará la cámara
   setContentView(R.layout.activity_main); //Vuelves a cargar la vista
}

With this I would not work anymore.

    
answered by 30.10.2018 в 09:08