Spinner JSON加载

时间:2013-04-22 23:11:14

标签: android json android-spinner

我确实看过 spinners,但在我正在处理的程序中,微调器上的数据是从API加载的...新的,我有点不知道将JSONObjects加载到微调器上。请帮助。

API回复有点像这样:

{"status":"","data":{"1":"scorpio"},"message":""}

在我必须显示值“Scorpio”时,微调器和后端在传递表单时指定值“1”。请帮助。

2 个答案:

答案 0 :(得分:2)

将您的JSON数组放入数组并简单地分配给循环中的微调器:

//json array
{"Employee":[{"Id":73,"Name":"Bård Pedersen","Email":"bp@spillbasen.com","Mobile":"9004422"}]}

ArrayList<String> TAG_ID = new ArrayList<String>();
ArrayList<String> TAG_NAME = new ArrayList<String>();
ArrayList<String> TAG_EMAIL = new ArrayList<String>();
ArrayList<String> TAG_PHONE_MOBILE = new ArrayList<String>();

  // Getting Array of Employee
        employee = json.getJSONArray("Employee");

        // looping through All Employee
        for (int i = 0; i < employee.length(); i++) {
            JSONObject c = employee.getJSONObject(i);

            // Storing each json item in variable
            id = c.getString("Id");
            name = c.getString("Name");
            email = c.getString("Email");
            mobile = c.getString("Mobile");

            // adding all get values into array
            if (name != "null" && mobile != "null") {
                TAG_NAME.add(name);
                TAG_ID.add(id);
                TAG_EMAIL.add(email);
                TAG_PHONE_MOBILE.add(mobile);
                close.add(R.drawable.close);
            }

答案 1 :(得分:1)

如果您的数据采用以下方式

  

{ “数据”:[{ “1”: “天蝎”},{ “2”: “BMW”},{ “3”: “Scoda”}]}

然后你检索并在微调器中显示如下: -

String[] id,name;

JSONObject jObject = new JSONObject(your data);
JSONObject jdata = jObject.getJSONArray("data");

id = new String[jdata.length()];
name = new String[jdata.length()];

Iterator<?> keys = jSEngineers.keys();

for(int i=0;i<jdata.length();i++){
id[i] = (String) keys.next();
name[i] = (String) jSEngineers.getString(id[i]);
}

现在您可以将这些值放入指定的数组中。现在您可以将所需的值分配给Spinner。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(YourActivity.this,android.R.layout.simple_spinner_item, name);
spinnerName.setAdapter(adapter);

现在您可以按如下方式获取选定的微调项目

spinnerName.getSelectedItemPosition();

通过这个你将得到项目的位置。在你的帮助下,你可以检索你的背景目的所需的ID。如下..

Log.i("Item id is",id[spinnerName.getSelectedItemPosition()].toString());