Когда я сканирую Qr, результат не отображается при редактировании текста в Android studio?

#java #android #android-studio #qr-code

#java #Android #android-studio #qr-код

Вопрос:

Если в Android Studio есть небольшое приложение, в котором я сканирую QR-код, и результат должен отображаться в первом EditText «number». Но этого не происходит. Я попробовал это с помощью TextView, и текст также не изменился. Как я могу установить текст после нажатия кнопки «Сканировать», затем сканировать, а затем текст должен измениться?

 import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResu<

public class verleih extends AppCompatActivity {

EditText number;
EditText name;
EditText complete;
EditText where;

Button find;
Button add;
Button update;
Button delete;
Button scan;

TextView textView;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_verleih);
    
    number=findViewById(R.id.editText_nummer);
    name=findViewById(R.id.editText_name);
    complete=findViewById(R.id.editText_vollstaendig);
    where=findViewById(R.id.editText_wo);

    find=findViewById(R.id.button_find);
    add=findViewById(R.id.button_add);
    update=findViewById(R.id.button_update);
    delete=findViewById(R.id.button_delete);
    scan=findViewById(R.id.button_scan);

    textView=findViewById(R.id.textView2);

    scan.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            IntentIntegrator integrator = new IntentIntegrator(verleih.this);
            integrator.initiateScan();
        }
    });

}

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    String number_qr="";
    super.onActivityResult(requestCode, resultCode, intent);
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    if (scanResult!=null) {
        Toast.makeText(this,scanResult.getContents(),Toast.LENGTH_SHORT).show();
        number_qr=scanResult.getContents();

        number.setText(number_qr);
        textView.setText(number_qr);

    }else{
        Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
    }

}
 

}

Комментарии:

1. Тост с «Ошибкой» печатается?

Ответ №1:

В документации Zxing упоминается, что если пользователь отменит сканирование, тогда getContents() будет null. Если оно равно нулю, оно ничего не отобразит в текстовом представлении / редактировании текста. Добавьте нулевую проверку number_qr и подтвердите, что вы получаете данные из библиотеки.