我希望它在每次扫描时将标记添加到列表中。然后在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
}
`
1条答案
按热度按时间vlju58qv1#
这看起来像是范围问题。
由于您在
onTagDiscovered
的范围内定义了val test123 = mutableListOf<String>()
,因此它在onTagDiscovered
之外不可用,并且每次扫描识别卡时都会重置。您可能希望在
Activity
作用域中定义该列表,但要注意onTagDiscovered
是在与主UI线程不同的线程中运行的,因此尝试使用findViewById<TextView>(R.id.test)
将导致错误。您将需要使用runOnUiThread更新TextView