#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
и подтвердите, что вы получаете данные из библиотеки.