2016-07-12 6 views
1

私は2つのスピナーを作りたい、最初のスピナーは状態のリストを持ち、2番目のスピナーは都市のリストを含んでいます。最初のスピナーから特定の状態を選択した場合、次のスピナーは選択された状態の都市のみを表示する必要があります。条件によってスピナーの値をソート

私はすべての私の状態や都市のために作成した

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    Spinner state = (Spinner) findViewById(R.id.spinnerState); 
    ArrayAdapter<CharSequence> stateadapter = ArrayAdapter.createFromResource(
      this, R.array.item_state, android.R.layout.simple_spinner_item); 
    stateadapter.setDropDownViewResource(R.layout.spinner_layout); 
    state.setAdapter(stateadapter); 




    Spinner city = (Spinner) findViewById(R.id.spinnerCity); 
    ArrayAdapter<CharSequence> cityadapter = ArrayAdapter.createFromResource(
      this, R.array.item_city, android.R.layout.simple_spinner_item); 
    cityadapter.setDropDownViewResource(R.layout.spinner_layout); 
    city.setAdapter(cityadapter); 


}} 

私のアンドロイドコード。

+0

XMLファイルに状態を持つ都市を格納している方法は? –

答えて

0

スピナー状態にリスナーを追加

state.setOnItemSelectedListener(this);

リスナーを実装します。

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    String selectedState = state.getSelectedItem().toString(); 

    List<String> citiesInState = new ArrayList<>(); 
    // add all cities in selectedState to this list using citiesInState.add(); 
    // this will depend upon how you are storing the cities and states 

    ArrayAdapter<String> cityDataAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item, citiesInState); 
    cityDataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    city.setAdapter(cityDataAdapter); 

} 
1

あなたがこれを達成することができます多くの方法は、例えば、あります

ArrayAdapter<CharSequence> stateadapter; 
switch(state) 
{ 
    case "Florida": 
     { 
      stateadapter = ArrayAdapter.createFromResource(this, R.array.cities_florida, android.R.layout.simple_spinner_item); 
     } break; 
} 

(ちょっとハードコード)

最も最適な解決策は、xmlファイルに定義することです(おそらくインターネット上のどこかで取得できます)。ファイルを読み込んで選択した状態のすべての都市を返すクラスを作成します。

読む: https://developer.android.com/training/basics/network-ops/xml.html

関連する問題