I checked the related questions to this problem and tried some of the suggestion but still it dosen't seem to execute the setOnItemSelectedListener
event. Here is my activity code :
private void init() {
pays = (Spinner) findViewById(R.id.pays_spinner);
populatePays();
}
List<String> list;
public void populatePays(){
list = new ArrayList<String>();
apiService = RestService.createService(SolarAPIService.class);
Call<ArrayList<String>> call = apiService.listPays();
call.enqueue(new Callback<ArrayList<String>>() {
@Override
public void onResponse(Call<ArrayList<String>> call, Response<ArrayList<String>> response) {
for(String pays: response.body()) {
list.add(pays);
}
}
@Override
public void onFailure(Call<ArrayList<String>> call, Throwable t) {
}
});
ArrayAdapter<String> dataAdapter= new ArrayAdapter<String>
(this, android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource
(android.R.layout.simple_spinner_dropdown_item);
pays.setAdapter(dataAdapter);
pays.setSelection(1);
pays.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
nompays=pays.getItemAtPosition(position).toString();
Toast.makeText(getApplicationContext(),
"Selected Country : " + nompays, Toast.LENGTH_LONG).show();
populateVille(nompays);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
I would appreciate your help. Thank you !
set spinner adapter after list has been filled.
private void init() {
pays = (Spinner) findViewById(R.id.pays_spinner);
populatePays();
}
List<String> list;
public void populatePays() {
list = new ArrayList<String>();
apiService = RestService.createService(SolarAPIService.class);
Call<ArrayList<String>> call = apiService.listPays();
call.enqueue(new Callback<ArrayList<String>>() {
@Override
public void onResponse(Call<ArrayList<String>> call, Response<ArrayList<String>> response) {
for (String pays : response.body()) {
list.add(pays);
}
setSpinnerAdapter();
}
@Override
public void onFailure(Call<ArrayList<String>> call, Throwable t) {
}
});
private void setSpinnerAdapter() {
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>
(this, android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource
(android.R.layout.simple_spinner_dropdown_item);
pays.setAdapter(dataAdapter);
pays.setSelection(1);
pays.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
nompays = pays.getItemAtPosition(position).toString();
Toast.makeText(getApplicationContext(),
"Selected Country : " + nompays, Toast.LENGTH_LONG).show();
populateVille(nompays);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}