[英]How to set selected item of Spinner by value in JSON?
我有基于 JSON 数据的微调值:
这是 Spinner 值的 JSON
{
"taxonomy":{
"City":[
{
"city_id":12,
"name":"Jakarta"
},
{
"city_id":13,
"name":"Jakarta"
}
]
}
}
并有 JSON 用户
{
"taxonomy":{
"User":[
{
"ID":112,
"name":"Ray",
"city":12
},
{
"ID":113,
"name":"Tiara",
"city":12
}
]
}
}
我已经在微调器中解析 json 数据
for (int i=0; i<data_city.length();i++){
JSONObject listcity = data_city.getJSONObject(i);
Spin_city modelcity = new Spin_kecamatandesa(
listkec.getInt("city_id"),
listkec.getString("name")
);
Str_array_kec.add(modelcity);
}
SpinnAdapter adapterspin = new SpinnAdapter(getApplicationContext(),
android.R.layout.simple_spinner_dropdown_item, Str_array_kec);
spn_edt_kec.setAdapter(adapterspin);
我的问题是,如何根据 JSON 用户设置所选项目(如 city_id 等于城市)?
在名为的 ArrayList 中添加城市时,请保留所需城市的索引号
str_array_kec
然后通过调用 '.setSelection()' 函数使微调器被选择到该项目,如下所示:
spn_edt_kec.setSelection(yourDesiredCityIndex)
像这样尝试
// declear a variable named position
int position = -1;
for (int i=0; i<data_city.length();i++){
JSONObject listcity = data_city.getJSONObject(i);
Spin_city modelcity = new Spin_kecamatandesa(
listkec.getInt("city_id"),
listkec.getString("name")
);
// check city_id is matching or not
if(listcity.getInt("city_id") == user_city_id){ // here user_city_id is variable whice is assigned when parse user data iterated.
position = i; // assign matching index to position
}
Str_array_kec.add(modelcity);
}
SpinnAdapter adapterspin = new SpinnAdapter(getApplicationContext(),
android.R.layout.simple_spinner_dropdown_item, Str_array_kec);
spn_edt_kec.setAdapter(adapterspin);
spn_edt_kec.setSelection(position); // set selected position to your spinner.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.