Kotlin(Android)列表中的HashMap
我试图在Kotlin的列表中表示HashMap。 该清单的结构如下:Kotlin(Android)列表中的HashMap,android,firebase,kotlin,Android,Firebase,Kotlin,我试图在Kotlin的列表中表示HashMap。 该清单的结构如下: daysOfWeekHashMapOptions = listOf( hashMapOf("key" to 0, "label" to "Monday"), hashMapOf("key" to 1, "label" to "Tuesday"), hashMapOf("key
daysOfWeekHashMapOptions = listOf(
hashMapOf("key" to 0, "label" to "Monday"),
hashMapOf("key" to 1, "label" to "Tuesday"),
hashMapOf("key" to 2, "label" to "Wednesday"),
hashMapOf("key" to 3, "label" to "Thursday"),
hashMapOf("key" to 4, "label" to "Friday"),
hashMapOf("key" to 5, "label" to "Saturday"),
hashMapOf("key" to 6, "label" to "Sunday")
)
这样设置的方式是,我的Firebase Firestore将一周中选定的几天存储在如下列表中:
daysOfWeek [
0: {
key: 0
label: "Monday"
},
1: ...
]
我遇到的问题是,我想在我的Android应用程序中创建一个AutoCompleteText,这样我就可以选择这些值并适当地显示它们。因此,我希望AutoCompleteText的ArrayAdapter将每个标签参数作为一个选项来选择。然后,来自AutoCompleteText的选定选项(HashMap)的存储值将存储在列表/数组中。然而,能够“过滤”并分割选项列表和HashMap是困难的
在JavaScript中,这可能类似于daysOfWeekHashMapOptions.filter(value=>value.label)
(可能)。非常感谢您在Kotlin提供的任何帮助或指导,谢谢 您可以使用map
:
labels=daysOfWeekHashMapOptions.map{it.get(“label”)}
标签
的值类型为列表
您可以使用映射
:
labels=daysOfWeekHashMapOptions.map{it.get(“label”)}
标签
的值类型为列表
这是您的第二个问题:
val-map=HashMap()
地图放置(0,“星期一”)
地图放置(1,“星期二”)
地图放置(2,“星期三”)
地图放置(3,“星期四”)
地图放置(4,“星期五”)
地图放置(5,“星期六”)
地图放置(6,“星期日”)
您的数据库如下所示:
daysOfWeek [
0: "Monday"
1: "Tuesday"
...........
6: "Sunday"
]
如果您不打算只存储一周中的几天以外的任何东西,那么这是最好的方法。这是您的第二个问题:
val-map=HashMap()
地图放置(0,“星期一”)
地图放置(1,“星期二”)
地图放置(2,“星期三”)
地图放置(3,“星期四”)
地图放置(4,“星期五”)
地图放置(5,“星期六”)
地图放置(6,“星期日”)
您的数据库如下所示:
daysOfWeek [
0: "Monday"
1: "Tuesday"
...........
6: "Sunday"
]
如果你不打算只储存一周中的几天以外的任何东西,那么这是最好的方式。太棒了!非常感谢。作为一个额外的问题。现在,如果我有一个芯片组(带有芯片),存储从AutoCompleteText中选择的日期。如何从daysOfWeekHashMapOptions
中找到与每个芯片的文本(标签)值匹配的HashMap值?再次感谢:)您想根据“标签”获取“密钥”?感谢您的回复@Tugqay,或者从daysOfWeekHashMapOptions
获取实际值。例如,我遍历芯片组中的子级列表。然后我想在daysOfWeekHashMapOptions
中找到所有元素,这些元素有一个标签
与芯片的文本相同,你所说的实际值是什么意思?芯片组的数据类型是什么?Hi@Tuqay。对不起,我的措辞。我将其计算为:daysOfWeekHashMapOptions.filter{it[“label”]==chip.text.toString()}
。这将返回一个列表,其中包含与芯片文本匹配的星期哈希映射值。太棒了!非常感谢。作为一个额外的问题。现在,如果我有一个芯片组(带有芯片),存储从AutoCompleteText中选择的日期。如何从daysOfWeekHashMapOptions
中找到与每个芯片的文本(标签)值匹配的HashMap值?再次感谢:)您想根据“标签”获取“密钥”?感谢您的回复@Tugqay,或者从daysOfWeekHashMapOptions
获取实际值。例如,我遍历芯片组中的子级列表。然后我想在daysOfWeekHashMapOptions
中找到所有元素,这些元素有一个标签
与芯片的文本相同,你所说的实际值是什么意思?芯片组的数据类型是什么?Hi@Tuqay。对不起,我的措辞。我将其计算为:daysOfWeekHashMapOptions.filter{it[“label”]==chip.text.toString()}
。这将返回一个列表,其中包含与芯片文本匹配的周天数哈希映射值。谢谢@Tuqay,我将改为使用这种方式。这肯定更有意义!谢谢@Tuqay,我会考虑用这种方式来代替。这肯定更有意义!