2015-06-22 71 views
-4

我正在開發一個帶有微調器的android應用程序。 微調項目和微調值是不同的。我想從包括微調框中收集所有的值,並設置一個休息api服務到web後端。這裏是響應數組。在Android中使用自定義適配器爲Spinner設置值

{"Status":true,"errorType":null,"countryList":[{"Code":"US","Name":"United States"},{"Code":"CA","Name":"Canada"},{"Code":"AU","Name":"Australia"},{"Code":"GB","Name":"United Kingdom"}]} 

我成功綁定的名稱的JSONObject來微調器,但我不能添加代碼

這是我的代碼。

JSONObject responseObject = new JSONObject(res); 
      String status=responseObject.getString("Status"); 
      JSONArray JA = responseObject.getJSONArray("countryList"); 
      JSONObject json= null; 


      if(status.equals("true")) { 

       final String[] str2 = new String[JA.length()]; 
       for (int i=0;i<JA.length();i++) 
       { 
        json = JA.getJSONObject(i); 
        str2[i] = json.getString("Name"); 
       } 

       sp = (Spinner) findViewById(R.id.citnzshp_field); 
       list = new ArrayList<String>(); 

       for(int i=0;i<str2.length;i++) 
       { 
        list.add(str2[i]); 

       } 
       Collections.sort(list); 

       ArrayAdapter<String> adp; 
       adp = new ArrayAdapter<String> 
         (getApplicationContext(),android.R.layout.simple_dropdown_item_1line, list); 

       sp.setAdapter(adp); 


      } 

我如何可以將綁定在代碼的JSONObject來微調器的表單提交後服用。

任何人都可以請分享我製作自定義適配器綁定數據到微調和選擇價值也的優勢。

+1

退房:http://stackoverflow.com/questions/24712540/set-key-and-value-in-spinner/24712664#24712664 –

回答

2

@Haresh Chhelana示例很好,但是如果您想在選擇後在微調器中顯示名稱和代碼,請檢查此項。

List<Map<String, String>> items = new ArrayList<Map<String, String>>(); 

    for (int i = 0; i < JA.length(); i++) { 
     json = JA.getJSONObject(i); 
     mapData = new HashMap<String, String>(); 
     mapData.put("name", json.getString("Name")); 
     mapData.put("code", json.getString("Code")); 
     items.add(mapData); 
    } 

    SimpleAdapter adapter = new SimpleAdapter(this, items, android.R.layout.simple_list_item_2, new String[] { 
      "name", "code" }, new int[] { android.R.id.text1, android.R.id.text2 }); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

和微調框所選項目的回調

spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       Map<String, String> selectedItem = (Map<String, String>) parent.getSelectedItem(); 
       String name=selectedItem.get("name"); 
       String code=selectedItem.get("code"); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 
      } 
     }); 
+0

@ barath,工作正常...真棒..謝謝 – Jishad

+0

歡迎...快樂編碼 – Bharatesh

+0

@bharath,爲什麼此代碼不適用於autocompleteTextView – Jishad

相關問題