扫描二维码和签到打卡应用程序
项目简介
完整的二维码扫描功能
漂亮的界面
查询数据库功能
写入到本地文件在本地文件中手动创建txt文件
打卡功能实现
集成扫描二维码功能
我的做法和大多数朋友有点区别,这个是参考大神的.
直接把二维码源代码集成到项目中去
- 我的项目的目录结构
下面看代码
@Override public void onClick(View v) { switch (v.getId()) { case R.id.zxing://点击扫描二维码的button scanner(); break; default: break; } } /** * 扫描 */ private void scanner() { Intent intent = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent, SCAN_CODE); } /** * 二维码获取到数据在此方法中返回 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case SCAN_CODE: if (resultCode == RESULT_OK) { zXingData = data.getStringExtra("scan_result"); } else if (resultCode == RESULT_CANCELED) { Toast.makeText(getApplicationContext(), "没有扫描出结果", Toast.LENGTH_SHORT).show(); } meetContent(); break; default: break; } }
其中scanner()方法中CaptureActivity.class是集成到项目中的类,不用做处理,
对返回的数据进行解析, 我这里因为是定制化的二维码.所以有固定的解析格式,朋友们如果拿到返回的数据想怎么做都行.
/** * 扫描数据返回 */ private void meetContent() { if (TextUtils.isEmpty(zXingData)) return; System.out.println(zXingData); String[] result = zXingData.split("::"); System.out.println(result.length + ""); if (9 != result.length) { scanner(); return; } int i = result.length; tvExternalTeach.setText(result[i - 1]);// 外单位老师 tvThisTeach.setText(result[i - 2]);// 本单位老师 tvUnit.setText(result[i - 3]);// 组织单位 tvTime.setText(