2017-06-15 95 views
0

我有兩個網址,一個用於獲取regionname,另一個用於登錄。第一個網址給出的響應爲如何根據選定的微調項目獲得關聯的Json值

[{"CmpnyName":"Indore","CmpnyCode":"111"},{"CmpnyName":" Nagpur","CmpnyCode":"222"},{"CmpnyName":" Jabalpur","CmpnyCode":"333"},{"CmpnyName":"Amravati","CmpnyCode":"444"}] 

現在我必須在微調器中顯示CmpnyName。所以我做的,

typeofcompany.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      ba = typeofcompany.getSelectedItem().toString(); 
      SelectType(ba); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 

我的問題是,當我選擇CmpnyName,它應該調用與之關聯的,例如印多爾CmpnyCode應等致電111 ....這是在第二個URL中使用。 ..我不是在得到該怎麼辦it..any的幫助,請....感謝ü

+1

首先添加您的JSON轉換成POJO模型,然後當你從微調用戶的位置選擇項目,並得到您的價值 –

回答

0

首先,解析這樣您GSON字符串:

ArrayList<HashMap<String,String>> companyNameList = new ArrayList<>() 
    ArrayList<HashMap<String,String>> companyIdList= new ArrayList<>(); 

try 
{ 
    JSONArray array = new JSONArray(preferenceManager.getSalaryJobFilter()); 

       for(int arr = 0; arr<array.length(); arr++){ 
        HashMap<String,String> hashMap = new HashMap<>(); 
        HashMap<String,String> hashMap1 = new HashMap<>(); 

        JSONObject object = array.getJSONObject(arr); 

         hashMap.put("companyName",object.getString("companyName")); 

      hashMap1.put("companyCode",object.getString("companyCode")); 

        companyNameList .add(hashMap); 
        companyIdList.add(hashMap1); 
       } 

} 

catch (JSONException e) { 
       e.printStackTrace(); 
      }  

現在從「companyNameList」填寫您的列表:

for (int i = 0; i < companyNameList.size(); i++) {  
     companyNameSpinnerList.add(companyNameList.get(i).get("companyName")); 
    } 
    companyNameAdapter.notifyDataSetChanged(); 

然後使用

字符串company_name_id = companyIdList.get(ⅰ)獲得( 「企業編碼」);

內部Ur「onItemSelected」方法。 「company_name_id」將是您所需的所選公司名稱的ID。

方法1-使用「companyNameList」數組填充適配器。一旦你點擊任何項目獲取它的位置,並使用「companyIdList」獲取它的ID。

方法:2-您還可以使用POJO類吧...首先獲得所選擇的項目位置,(在其「我」 UR情況下),並使用它從你的POJO獲得companyid

+0

我添加它到我的適配器,當我選擇一個項目,我用getitematposition(i); ,我很困惑下一步 –

+0

@Arpittodewale - 哪個解決方案使用HASHMAP或POJO類?如果您正在使用POJO,請按照「gprathour」解決方案進行操作。但爲此,您必須使用自定義適配器而不是默認適配器。 如果您正在使用HASHMAP解決方案,那麼請使用您的位置('我'在你的情況下)從「companyIdList」獲取companyid。 –

+0

m使用HASHMAP一個 –

0

你可以你的模型有一個bean類。

class MyBean implements java.io.Serializable{ 
    String companyName; 
    String companyCode; 

    //getter-setter 
} 

然後爲您的微調自定義適配器通過傳遞微調的onItemSelectedListener bean類,即ArrayList<MyBean>

隨後的數組列表,這樣做,

typeofcompany.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
     MyBean clickedCompany = myBeanList.get(i); 
     // then you can get clickedCompany.getCompanyName(); 
     // clickedCompany.getCompanyCode(); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> adapterView) { 

    } 
}); 
相關問題