我正在开发一个涉及QR扫描的应用程序。我可以通过使用从我的应用程序A启动的Zxing库来使扫描仪应用程序正常工作。 我需要将扫描产品的信息存储在文本框或编辑框中,然后将其用于其他目的。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(MainActivity.this,
CaptureActivity.class);
// Intent intent = new
// Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == 1) {
// Handle successful scan
String capturedQrValue = intent.getStringExtra("RESULT");
// String format =
intent.getStringExtra("SCAN_RESULT_FORMAT");
Toast.makeText(MainActivity.this,"Scan Result:" + capturedQrValue, Toast.LENGTH_SHORT).show();
finish();
Intent it=new Intent(MainActivity.this,ThirdActivity.class);
it.putExtra("Code", capturedQrValue);
startActivity(it);
请帮助我。
答案 0 :(得分:0)
然后全局初始化String capturedQrValue。无论如何,你获得了onActivityResult方法的价值。 你写了一个像这样的方法
public static String getResponce(){
return capturedQrValue;
}
从您要显示它的其他活动中调用此方法。 希望这有助于你
答案 1 :(得分:0)
如果您想在扫描后直接打开其他活动,可以使用此解决方案:
在您当前的活动中,创建一个新的意图:
Intent i = new Intent(getApplicationContext(), NewActivity.class);
i.putExtra("new_variable_name","value");
startActivity(i);
然后在新的Activity中,检索这些值:
Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("new_variable_name");
TextField text;//get your textfield by ID or create it in the activity
text.setText(value);
}
使用此技术将变量从一个Activity传递到另一个Activity。 在这里找到:https://stackoverflow.com/a/7325248/1515052
如果您想稍后打开其他活动,您可能希望将该值存储在共享首选项文件中。
http://developer.android.com/guide/topics/data/data-storage.html#pref