簡體   English   中英

如何按 JSON 中的值設置 Spinner 的選定項目?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM