Android Studio数据从NFC标签到列表

utugiqy6  于 2022-11-16  发布在  Android
关注(0)|答案(1)|浏览(169)

我希望它在每次扫描时将标记添加到列表中。然后在Activity的TextView中显示它
我试着复制数组并增加它的大小,但是没有用。

override fun onTagDiscovered(tag: Tag?) {
    val test = findViewById<TextView>(R.id.test)
    val mNdef = Ndef.get(tag)
    val test123 = mutableListOf<String>()

    //val myList = mutableListOf("")

    if (mNdef != null) {
        val mNdefMessage = mNdef.cachedNdefMessage
        val firstRecord = mNdefMessage.records[0]
        val payload= firstRecord.payload
        val textArray= payload.copyOfRange(payload[0].toInt() + 1, payload.size)

        var text = String(textArray)

        test123.add(text)
        Log.i("TAG", test123.toString())

        test.text = text

    }

`

vlju58qv

vlju58qv1#

这看起来像是范围问题。
由于您在onTagDiscovered的范围内定义了val test123 = mutableListOf<String>(),因此它在onTagDiscovered之外不可用,并且每次扫描识别卡时都会重置。
您可能希望在Activity作用域中定义该列表,但要注意onTagDiscovered是在与主UI线程不同的线程中运行的,因此尝试使用findViewById<TextView>(R.id.test)将导致错误。
您将需要使用runOnUiThread更新TextView

相关问题