我现在正在创建一个应用程序,我有些困惑。我有2个文件,MainActivity和QrCodeGernerator。我正在为数据收集应用程序执行此操作。用户将数据输入MainActivity并与QrCodeGenerator共享,然后QrCodeGenerator创建一个qr代码。问题是二维码始终为空。任何帮助,将不胜感激。首先是MainACtivity(我提供了与问题有关的代码段,而不是我的整个代码)
public static String finalOutput;
public void output (View view) {
EditText editSN = findViewById(R.id.editSN);
EditText editTN = findViewById(R.id.editTN);
RadioGroup alliance = findViewById(R.id.alliance);
RadioButton allianceI = findViewById(alliance.getCheckedRadioButtonId());
RadioGroup driverStation = findViewById(R.id.driverStation);
RadioButton driverStationI = findViewById(driverStation.getCheckedRadioButtonId());
EditText matchNumber = findViewById(R.id.editMatchNumber);
RadioGroup driverOff = findViewById(R.id.crossLine);
RadioButton driveOffI = findViewById(driverOff.getCheckedRadioButtonId());
EditText autoPowerPortBottom = findViewById(R.id.editAutoPowerPortBottom);
EditText autoPowerPortOuter = findViewById(R.id.editAutoPowerPortOuter);
EditText autoPowerPortInner = findViewById(R.id.editAutoPowerPortInner);
EditText autoDroppedPowerCells = findViewById(R.id.editAutoDroppedPowerCells);
RadioGroup autoConflict = findViewById(R.id.autoConflict);
RadioButton autoConflictS = findViewById(autoConflict.getCheckedRadioButtonId());
EditText PowerPortBottom = findViewById(R.id.editPowerPortBottom);
EditText PowerPortOuter = findViewById(R.id.editPowerPortOuter);
EditText PowerPortInner = findViewById(R.id.editPowerPortInner);
EditText droppedPowerCells = findViewById(R.id.editDroppedPowerCells);
CheckBox boxTrench = findViewById(R.id.boxTrench);
CheckBox boxCenter = findViewById(R.id.boxCenter);
CheckBox boxOnTheirSide = findViewById(R.id.boxOnTheirSide);
RadioGroup climb = findViewById(R.id.climb);
RadioButton climbS = findViewById(climb.getCheckedRadioButtonId());
RadioGroup multiClimb = findViewById(R.id.multiClimb);
RadioButton multiClimbS = findViewById(multiClimb.getCheckedRadioButtonId());
RadioGroup driverSkill = findViewById(R.id.driverSkill);
RadioButton driverSkillI = findViewById(driverSkill.getCheckedRadioButtonId());
RadioGroup focusOnDefense = findViewById(R.id.groupFocusOnDefense);
RadioButton focusOnDefenseI = findViewById(focusOnDefense.getCheckedRadioButtonId());
EditText beached = findViewById(R.id.editBeached);
EditText disabled = findViewById(R.id.editDisabled);
EditText died = findViewById(R.id.editDied);
EditText fouls = findViewById(R.id.editFouls);
EditText techFouls = findViewById(R.id.editTechFoul);
EditText notes = findViewById(R.id.editNotes);
Button submit = findViewById(R.id.submit);
String[] output = new String[]{
editSN.getText().toString(),
editTN.getText().toString(),
allianceI.getText().toString(),
driverStationI.getText().toString(),
matchNumber.getText().toString(),
driveOffI.toString(),
autoPowerPortBottom.getText().toString(),
autoPowerPortOuter.getText().toString(),
autoPowerPortInner.getText().toString(),
autoDroppedPowerCells.getText().toString(),
autoConflictS.getText().toString(),
PowerPortBottom.getText().toString(),
PowerPortOuter.getText().toString(),
PowerPortInner.getText().toString(),
droppedPowerCells.getText().toString(),
climbS.getText().toString(),
multiClimbS.toString(),
disabled.getText().toString(),
died.getText().toString(),
fouls.getText().toString(),
techFouls.getText().toString(),
notes.getText().toString()
};
for (int i = 0; i < output.length; i++) {
finalOutput = finalOutput.concat(output[i].toString());
}
}
然后是二维码
private String test;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.qr_code);
barcode=findViewById(R.id.barCode);
textView=findViewById(R.id.dataText);
test=MainActivity.finalOutput;
String data_in_code=test;
MultiFormatWriter multiFormatWriter=new MultiFormatWriter();
try{
BitMatrix bitMatrix=multiFormatWriter.encode(data_in_code, BarcodeFormat.QR_CODE,200,200);
BarcodeEncoder barcodeEncoder=new BarcodeEncoder();
Bitmap bitmap=barcodeEncoder.createBitmap(bitMatrix);
barcode.setImageBitmap(bitmap);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
我认为您想将数据从一个屏幕发送到另一个屏幕?
https://developer.android.com/training/basics/firstapp/starting-activity
看一下Intent,您可以使用它们启动其他活动(转到其他屏幕),还可以在屏幕之间传递数据,如链接所示。
在您的情况下,您只需向Intent添加额外的String或String的集合即可