2017-04-02 8 views
-2

選択した国に応じて州を設定する必要があります。私はまた他のspinnersで選択されたアイテムをキャプチャする必要があります。しかし、リスナーのメソッドは呼び出されていません。別のスピナーの選択に基づいてスピナーを設定する

countriesSpinner.setOnItemSelectedListener(this); 
statesSpinner.setOnItemSelectedListener(this); 
yearSpinner.setOnItemSelectedListener(this); 

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    // On selecting a spinner item 
    switch(view.getId()){ 
     case R.id.countriesSpinner: 
     { 
      Log.i("selected country",selectedCountry); 
      selectedCountry = parent.getItemAtPosition(position).toString(); 
      populateStates(); 
      ArrayAdapter stateAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, states); 
      statesSpinner.setAdapter(stateAdapter); 
     } 
     break; 

     case R.id.statesSpinner: 
     { 
      selectedState=parent.getItemAtPosition(position).toString(); 
     } 
     break; 

     case R.id.yearSpinner: 
     { 
      selectedYear = parent.getItemAtPosition(position).toString(); 
     } 
    } 



} 

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

} 

答えて

0

あなたは同上間違ったスイッチを持って... parent.getId()

を使用するには、あなたの必要性はこれを試してみてください。

public void onItemSelected(AdapterView<?> parent, View view, 
     int pos, long id) { 
    switch (parent.getId()) 
    {   
     case R.id.countriesSpinner: 

      Log.i("selected country",selectedCountry); 
      selectedCountry = parent.getItemAtPosition(position).toString(); 
      populateStates(); 
      ArrayAdapter stateAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, states); 
      statesSpinner.setAdapter(stateAdapter); 
      break;    

     case R.id.statesSpinner: 
      selectedState=parent.getItemAtPosition(position).toString(); 
      break;    
     case R.id.yearSpinner: 
      selectedYear=parent.getItemAtPosition(position).toString(); 
      break; 
    } 
} 
関連する問題