我有一个资源(JSON文件),它包含了我从数据库中获取数据以添加下拉列表所需的所有数据


  • 我的Json对国家的回应:

    {"searchvalues":[{"id":"1","name":"india"},{"id":"2","name":"srilanka"}],"success":1}

  • 国家名称通过使用添加到微调器:"countryadapter.add(jsonArray.getJSONObject(i).getString("name"));"

  • 下拉工作正常,当我选择"coutry"时。例如,我选择"india",我想要({"id":"1","name":"India"}).中的"id"
  • 我的需求仅从({"id":"1","name":"India"})获得选定的项目id。

    country.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent,
                View view, int position, long id) {
            // TODO Auto-generated method stub
        String  countryname = country.getSelectedItem().toString();
            StringRequest state=new StringRequest(Request.Method.POST, D_URL, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsnobject = new JSONObject(response);
        JSONArray  jsonArray =jsnobject.getJSONArray("searchvalues");
                    distadapter.clear();
                     for (int i = 0; i < jsonArray.length(); i++) {
                         JSONObject obj= jsonArray.getJSONObject(i);
                     }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError arg0) {
                    // TODO Auto-generated method stub
                }
            });
    

当您通过点击项目微调器来选择位置时。

JSONObject object = new JSONObject("Your Response");
JSONArray countries = object.getJSONArray("searchvalues");
String id = countries.getJSONObject(position).getString("id");

通过这种方式,您可以获得ID

验证JSON、后,请尝试此操作

class Country
{
    int id;
    String name;
}
List<Country> countryList = new ArrayList<Country>();

country.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent,
                View view, int position, long id) {
            // TODO Auto-generated method stub
        String  countryname = country.getSelectedItem().toString();
            StringRequest state=new StringRequest(Request.Method.POST, D_URL, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsnobject = new JSONObject(response);
        JSONArray  jsonArray =jsnobject.getJSONArray("searchvalues");
                    distadapter.clear();
                     for (int i = 0; i < jsonArray.length(); i++) {
                         JSONObject obj= jsonArray.getJSONObject(i);
                         Country tempCountry;
                         int id = obj.getInt("id");
                         String name = obj.getString("name");  
                         tempCountry.id =id;
                         tempCountry.name = name;
                         countryList.add(tempCountry);
                     }
               for(Country temp: countryList)
                {
                   if(countryName.equals(temp.name))
                      Toast.makeText(getApplicationContext(),"id : "+temp.id,Toast.LONG).show();
                }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError arg0) {
                    // TODO Auto-generated method stub
                }
            });

最新更新