在日常生活中,扫描二维码、条形码的功能随处可见,在github上有很多关于扫描二维码的开源项目,我在项目中用的是Zxing的扫描二维码的功能。
首先,下载精简过的Zxing的开源项目,并集合到自己的工程中,在activity中给一个按钮添加一个点击事件,点击跳转到扫描二维码的activity中。
main_goods_iv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ThreeActivity.this,
CaptureActivity.class);
startActivity(intent);
}
});
CaptureActivity.class是实现扫描二维码的功能的activity,在原本的zxing中,是在一个界面里面点击按钮跳转到扫描二维码的界面,然后扫描完成之后返回原来的界面,我这里对其修改,让它扫描完成之后跳转到一个新的页面:
public void handleDecode(Result rawResult, Bundle bundle) {
inactivityTimer.onActivity();
beepManager.playBeepSoundAndVibrate();
bundle.putString("result", rawResult.getText());
startActivity(new Intent(CaptureActivity.this, ResultActivity.class).putExtras(bundle));
}
扫描完成之后跳转到ResultActivity并将result这个参数传递到跳转的activity中。
在跳转的activity中,Bundle extras = getIntent().getExtras();得到传过来的值,
if (null != extras) {
String result = extras.getString("result");
}
如果传过来的值不为空,则将它赋值给result,并将这个值设置为文本框的文本内容且用webview加载。
WebChromeClient bin = new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
mResultText.setText("" +title);
}
};
webview.setWebChromeClient(bin);
webview.loadUrl(result);