2017-06-15 11 views
0

2つのURLがあります.1つは地域名を取得するためのもので、もう1つはログイン用です。最初のURLは選択したスピナー項目に基づいて関連付けられた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を選択すると、それは2番目のURLに使用されるべき....ように111とを呼び出す必要がありますたとえば、インドールのためのそれに関連するCmpnyCodeを呼び出す必要がある、としました。 ..私は、Uに感謝.... it..any助けてくださいを行う方法を得ていないのです

+1

最初のPOJOモデルにあなたのJSONを追加し、ような何かをスピナーのonItemSelectedListenerでBeanクラス次にArrayList<MyBean>

すなわちの配列リストを渡すことで、あなたのスピナーのためのカスタムアダプタを設定しますあなたがスピナーユーザーのアイテムからアイテムを選択してその値を得たとき –

答えて

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(I)に.get( "companyCode")を使用します。

Inside Ur「onItemSelected」メソッド。 「company_name_id」は、必要な会社名のIDになります。

方法1-「companyNameList」配列を使用してアダプタを入力します。任意の項目をクリックするとその位置を取得し、そのIDを取得するために「companyIdList」を使用します。

方法:2-あなたはまた、最初に(その「i」のウル場合)選択した項目の位置を取得し、あなたのPOJOから企業IDを取得するためにそれを使用して...それのためのPOJOクラスを使用することができます

+0

アイテムを選択すると、getitematposition(i); 、私は次のステップのために混乱しています –

+0

@Arpittodewale - どのソリューションは、HASHMAP 1つまたはPOJOクラスを使用しています..? POJOを使用している場合は、 "gprathour"ソリューションに従います。このためにはデフォルトアダプタではなくカスタムアダプタを使用する必要があります。 そして、HASHMAPソリューションを使用している場合は、companyIdListからcompanyidを取得するためにあなたのポジション(「i」の場合は「i」)を使用します。 –

+0

mハッシュマップを使用しています –

0

することができますあなたのモデルにはbeanクラスがあります。

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

    //getter-setter 
} 

はその後、

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) { 

    } 
}); 
関連する問題