Android(安卓)项目中的小需求
16lz
2021-01-26
1.硬件扫描二维码登录
参考Android 无 EditText 情况下接受扫码枪扫描数据
需求:硬件设备有二维码读取器,我们展示二维码,可以根据二维码信息,进行下一步操作
因为现有扫码设备,在扫码后就会在输入框(EditText)显示正确的扫码信息
选择方案:不使用EditText
class MainActivity : AppCompatActivity() { var barcode = "" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } override fun dispatchKeyEvent(event: KeyEvent?): Boolean { if (event?.action == KeyEvent.ACTION_DOWN) { val pressedKey = event.unicodeChar.toChar() //会输出单个的字符 barcode += pressedKey } if (event?.action == KeyEvent.ACTION_DOWN && event.keyCode == KeyEvent.KEYCODE_ENTER) { Toast.makeText(this, "barcode=$barcode", Toast.LENGTH_LONG).show() //TODO 全部输入完成 进行后续操作 barcode ="" } return super.dispatchKeyEvent(event) }}
注意:
1.在使用时需要使用.trim()去空,以免遇到问题
2.扫码会触发点击事件,需注意
2.实现连续点击
参考文章
https://www.cnblogs.com/tangZH/p/9832171.html
object MultipleClickUtils { private const val counts = 4 private const val duration = 3 * 1000L private val mHits = LongArray(counts) fun checkMultipleClick(onFinish: () -> Unit) { System.arraycopy(mHits, 1, mHits, 0, mHits.size - 1) mHits[mHits.size - 1] = SystemClock.uptimeMillis() if (mHits[0] >= SystemClock.uptimeMillis() - duration) { //完成连续counts点击 onFinish() } }}
arraycopy的方法理解
arraycopy
更多相关文章
- Android(安卓)实现ListView的点击变色的实例
- Android(安卓)实现点击两次BACK键退出应用
- ActivityGroup中切换Activity
- Android(安卓)获取 H5中的按钮,点击
- Android中点击文字打开QQ对话
- 环境搭建
- AS升级到3.1.1之后【ZXingScannerView 二维码扫描】error: resou
- Android(安卓)zxing 二维码扫描和生成方法(简单版)
- android的popupwindow点击返回按钮关闭