我是 kotlin 的新手,我如何创建一个对象列表然后在 Android 的 ListView 中成为用户?
我创建了一个名为 Articolo.kt 的类,如下所示:
data class Articolo(var barcode: String, var qty: Number)
所以传递给它的数据应该是“barcode”和“qty”,那么“barcode”将是一个唯一的键,如果存在一个带有它的项目,我将需要增加“qty”而不是添加一个新的列表。
然后这是我的功能,我在其中制作控件并将数据添加到类中:
private fun addBarcode() {
val barcode = txtBarcode.text.toString()
val qta = txtQta.text.toString().toInt()
if (barcode.trim() == "") {
txtBarcode.requestFocus()
return;
}
Articolo(barcode, qta)
}
所以此时我的对象 Articolo 带有我的数据,但是如何将其添加到我可以从另一个片段访问并在 ListView 中使用的列表/集合中?
答案 0 :(得分:3)
要在 kotlin 中创建数据列表,您需要简单地这样做
var list = arrayOf(" here you pass the type of data you want")
**Int Example
var list = arrayOf(1,2,3)
** String example
var list = arrayOf("string1","string2,"string3");
**you init a list
private var mylist : MutableList<Articolo>? = null
** then in your oncreate you reference it
mylist = mutableListOf()
** you can add your object class this way
var Articolo = Articolo("barcode","qty")
mylist.add(Articolo)
答案 1 :(得分:1)
private var mylist = mutableListOf<Articolo>()
//find the same barcode and add the qty,otherwise add Articolo(barcode, qta) to list
mylist.find{
it.barcode==barcode
}?.let{
it.qty+=qta
}?:{
mylist.add(Articolo(barcode, qta))
}
找到相同的条形码并添加数量,否则将Articolo(barcode, qta)添加到列表
Ps:作为unable-to-change-an-object-property-in-mutablelist中的问题,你不应该使用Number作为类型