我想创建一个带有4个或5个不同级别的微调器的表单屏幕,应该是这样的:
大学:米尼奥大学
校园:Azurém
建筑物:Bloco B
楼层:1
房间:LID 1
此数据存储在我的数据库中,我通过我的网络服务访问它。 主要的问题是所有的微调器都是相互依赖的,我不知道如何实现它。我试图根据这个答案做一些事情[spinner selection defines choices for another spinner]
但是我的情况不同而且更复杂。我不知道是否应该获取所有数据一次,或者我是否应该根据我选择的内容进行查询。
修改 我做了一些更改,这是我从我的网络服务中获得的一个示例..
{
"campuses":[
{
"id": "8",
"name": "Azurém",
"buildings": [
{
"id": "10",
"name": "Bloco B"
},
{
"id": "11",
"name": "Bloco C"
},
{
"id": "12",
"name": "Escola de Ciências"
},
{
"id": "13",
"name": "Escola de Engenharia",
"rooms": [
{
"id": "14",
"name": "LID 1",
"floor": "1"
},
{
"id": "15",
"name": "LID 3",
"floor": "1"
}
]
}
]
},
{
"id": "9",
"name": "Gualtar"
}
]
}
我的问题现在是在客户端(android).. 我想我知道怎么做,但总是欢迎建议:)
新编辑:当前屏幕如下所示 - > Location Screen
提前致谢!
答案 0 :(得分:0)
所以,这些类别中的每一个都是不同的旋转器(即大学是一个,校园是另一个,等等......)?
您的Web服务可以将每个大学作为JSON对象返回,并将所有大学作为封装对象返回。您可以将其映射到Java对象,然后在选择某些内容时进行魔术!像这样:
{
"universities": {
"univ1" : [
"campuses" : {
"campus1", "campus2"
},
"buildings" : {
"building1", "building2"
},
"floors" : {
"floor1", "floor2"
},
"rooms" : {
"room1", "room2"
}
],
"univ2" : [
"campuses" : {
"campus1", "campus2"
},
"buildings" : {
"building1", "building2"
},
"floors" : {
"floor1", "floor2"
},
"rooms" : {
"room1", "room2"
}
]
}
}
当然,如果您的数据集非常大,那么您最好先查询大学并强制用户在查询其余数据之前先选择它。