QR码发送数据到activity
QR Code send data to activity
我正在做的应用程序可以扫描二维码并将扫描的数据发送到另一个 activity。
我无法通过 QR 扫描将数据发送到另一个 activity。我认为这是因为 activity 之前的方法 returns 开始时。但我无法解决这个问题
代码如下:
public class ChooseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose);
final Activity activity = this;
_flag = false;
img1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegrator intentIntegrator = new IntentIntegrator(activity);
intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
intentIntegrator.setPrompt("Scan");
intentIntegrator.setCameraId(0);
intentIntegrator.setBeepEnabled(false);
intentIntegrator.initiateScan();
if (_flag == true)
{
Intent intent = new Intent(ChooseActivity.this, ReviewActivity.class);
startActivity(intent);
}
}
});
}
以及 onActivity 结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent
data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode,
resultCode, data);
if (result != null)
{
if (result.getContents() == null)
{
Toast.makeText(this, "Вы отменили сканирование",
Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this, result.getContents(),
Toast.LENGTH_SHORT).show();
String string = result.getContents().toString();
String[] parts = string.split("-");
part1 = parts[0];
part2 = parts[1];
part3 = parts[2];
String flag = "true";
Intent intent = new Intent(ChooseActivity.this,
ReviewActivity.class);
intent.putExtra("route", part1);
intent.putExtra("driver", part2);
intent.putExtra("car", part3);
intent.putExtra("flag", flag);
intent.putExtra("key", s1);
intent.putExtra("key2", s2);
_flag = true;
}
}
super.onActivityResult(requestCode, resultCode, data);
}
当二维码被扫描时,另一个 activity 在数据发送到这里之前开始。
就是这个问题
将此代码实施到您的项目中:-
img1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegrator intentIntegrator = new IntentIntegrator(activity);
intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
intentIntegrator.setPrompt("Scan");
intentIntegrator.setCameraId(0);
intentIntegrator.setBeepEnabled(false);
intentIntegrator.initiateScan();
}
});
我正在做的应用程序可以扫描二维码并将扫描的数据发送到另一个 activity。
我无法通过 QR 扫描将数据发送到另一个 activity。我认为这是因为 activity 之前的方法 returns 开始时。但我无法解决这个问题
代码如下:
public class ChooseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose);
final Activity activity = this;
_flag = false;
img1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegrator intentIntegrator = new IntentIntegrator(activity);
intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
intentIntegrator.setPrompt("Scan");
intentIntegrator.setCameraId(0);
intentIntegrator.setBeepEnabled(false);
intentIntegrator.initiateScan();
if (_flag == true)
{
Intent intent = new Intent(ChooseActivity.this, ReviewActivity.class);
startActivity(intent);
}
}
});
}
以及 onActivity 结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent
data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode,
resultCode, data);
if (result != null)
{
if (result.getContents() == null)
{
Toast.makeText(this, "Вы отменили сканирование",
Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this, result.getContents(),
Toast.LENGTH_SHORT).show();
String string = result.getContents().toString();
String[] parts = string.split("-");
part1 = parts[0];
part2 = parts[1];
part3 = parts[2];
String flag = "true";
Intent intent = new Intent(ChooseActivity.this,
ReviewActivity.class);
intent.putExtra("route", part1);
intent.putExtra("driver", part2);
intent.putExtra("car", part3);
intent.putExtra("flag", flag);
intent.putExtra("key", s1);
intent.putExtra("key2", s2);
_flag = true;
}
}
super.onActivityResult(requestCode, resultCode, data);
}
当二维码被扫描时,另一个 activity 在数据发送到这里之前开始。 就是这个问题
将此代码实施到您的项目中:-
img1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegrator intentIntegrator = new IntentIntegrator(activity);
intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
intentIntegrator.setPrompt("Scan");
intentIntegrator.setCameraId(0);
intentIntegrator.setBeepEnabled(false);
intentIntegrator.initiateScan();
}
});