[英]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.