2016-08-23 2 views
-2

私は2つのspinner.oneが国を表すツールバーにあり、他はarea.iを表すフラグメントにあります。サーバーからデータを取得しています。エリアのスピナーに表示されます。 アンドロイドアプリで国を地域別に変更するにはどうすればよいですか?

この

は私のJSONデータ

{ 
     "Status": 1, 
     "StatusMessage": "Country and Country Area List", 
     "data": [ 
     { 
      "CountryID": "1", 
      "CountryName": "India", 
      "CountryArea": [ 
      { 
       "CountryID": "1", 
       "AreaID": "1", 
       "AreaName": "Kuwait City(Capital)" 
      }, 
      { 
       "CountryID": "1", 
       "AreaID": "2", 
       "AreaName": " Hawally" 
      }, 
      { 
       "CountryID": "1", 
       "AreaID": "3", 
       "AreaName": "Farwaniya" 
      }, 
      { 
       "CountryID": "1", 
       "AreaID": "4", 
       "AreaName": " Ahmadi" 
      }, 
      { 
       "CountryID": "1", 
       "AreaID": "5", 
       "AreaName": " Jahra" 
      } 
      ] 
     }, 
     { 
      "CountryID": "2", 
      "CountryName": "Dubai", 
      "CountryArea": [ 
      { 
       "CountryID": "2", 
       "AreaID": "6", 
       "AreaName": " Jeddah" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "7", 
       "AreaName": " Riyadh" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "8", 
       "AreaName": " Khobar" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "9", 
       "AreaName": " Abha" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "10", 
       "AreaName": " Abqiq" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "11", 
       "AreaName": " Abu Arish" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "12", 
       "AreaName": " Al Ahsa" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "13", 
       "AreaName": " Al Baha" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "14", 
       "AreaName": " Al Dhahran" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "15", 
       "AreaName": " Al Jubail" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "16", 
       "AreaName": " Al Kharj" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "17", 
       "AreaName": " Al Madina El Monawara" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "18", 
       "AreaName": " Al Qatif" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "19", 
       "AreaName": " Al Taif" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "20", 
       "AreaName": " Almadnab" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "21", 
       "AreaName": " Bisha" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "22", 
       "AreaName": " Buraida" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "23", 
       "AreaName": " Dawadmy" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "24", 
       "AreaName": " Hafr Elbatin" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "25", 
       "AreaName": " Hail " 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "26", 
       "AreaName": " Jazan" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "27", 
       "AreaName": " Mecca" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "28", 
       "AreaName": " Oniza" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "29", 
       "AreaName": " Qurayat" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "30", 
       "AreaName": " Zulfi" 
      }, 
      { 
       "CountryID": "2", 
       "AreaID": "31", 
       "AreaName": "Dammam" 
      } 
      ] 
     } 
     ] 
    } 

これは、ツールバーに配置されている私のCountryAdpterです:

@Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     inflater.inflate(R.menu.menu, menu); 
     super.onCreateOptionsMenu(menu, inflater); 
     this.menu = menu; 
     MenuItem menuItem = menu.findItem(R.id.menu_spinner).setVisible(true); 
     mCountrySpinner = (Spinner) MenuItemCompat.getActionView(menuItem); 


     countryAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, mCountryList); 
     countryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     mCountrySpinner.setAdapter(countryAdapter); 

     mCountrySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       countryId = getCountryId.get(position); 
       Log.e("countryid", countryId); 


      } 

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

      } 
     }); 


    } 
+3

スピナーコードはどこにありますか? –

答えて

0

私はあなたが構築するために通過する必要がある一般的な手順を概説しますあなたの適切な方法でデータを送信します。

第1位。指定されたJSONを解析する必要があります。 I は、GSONのようなライブラリを使用することをお勧めします。それは使いやすく、本当に役に立ちます。 GSONを使用して渡すには、CountryAreaの少なくとも2つのクラスを作成する必要があります。 Countryクラスには、CountryAreaオブジェクトのリストが必要です。変数名mach が完全にのJSONの対応するキーであることを確認するか、SerializedName GSONのプロパティを使用してください。

第2位。のonItemSelectedを押すと、最初のSpinnerを作成したのと同じ方法で、今回は対応するCountryエリアが設定されます。

+0

'countryAdapter = new ArrayAdapter 'の代わりに 'countryAdapter = new ArrayAdapter 'を使用するようにOPを提案しましたが、GSONを使用している可能性がありますので、おそらくGSONとPOJOクラスは受け入れません。 – pskink

+0

私はこの手順をどのように使うことができるのか分かりません。私はCountryクラスを作りデータをそこに保存しました。変更はありません。@ pskink –

関連する問題