Java 跨文件发送数据
我现在正在创建一个应用程序,我有点困惑。我有两个文件,MainActivity和QRCodeGenerator。我这样做是为了一个数据采集应用程序。用户将数据输入MainActivity,并与QrCodeGenerator共享数据,然后QrCodeGenerator创建qr代码。问题是二维码一直为空。任何帮助都将不胜感激。MainACtivity是第一个(我已经包括了与问题相关的snipet,而不是我的全部代码)Java 跨文件发送数据,java,android,Java,Android,我现在正在创建一个应用程序,我有点困惑。我有两个文件,MainActivity和QRCodeGenerator。我这样做是为了一个数据采集应用程序。用户将数据输入MainActivity,并与QrCodeGenerator共享数据,然后QrCodeGenerator创建qr代码。问题是二维码一直为空。任何帮助都将不胜感激。MainACtivity是第一个(我已经包括了与问题相关的snipet,而不是我的全部代码) 我想你想把数据从一个屏幕发送到另一个屏幕 查看意图,您可以使用它们来启动其他活动
我想你想把数据从一个屏幕发送到另一个屏幕 查看意图,您可以使用它们来启动其他活动(转到其他屏幕),还可以在屏幕之间传递数据,如链接所示
在您的情况下,您只需将字符串附加项或字符串集合作为一个附加项添加到意图中我不太确定。我需要传递字符串数据的意图吗?我之所以这么问,是因为它引用了QrCodeGenerator文件中的字符串数据。“跨文件发送数据”毫无意义。请澄清,好的。现在我已经有了。我有一个改变观点的意图。它起作用了。问题是二维码生成器不会生成二维码,因为没有数据。现在我正试图解决这个问题。intent可以解决这个问题吗?是的,您将数据作为额外数据放在那里,然后使用getIntent()在其他活动中接收数据。查看链接,您可以在那里找到示例
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);