2017-04-02 2 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; 
    } 
} 
관련 문제