This is my code
[...]
final String[] top_spinner_items = new String[35];
for (int i = 0; i < top_spinner_items.length; i++) {
top_spinner_items[i] = Integer.toString(i+1);
}
ArrayAdapter<String> spn_topItemsAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, top_spinner_items);
spn_topItemsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
[...]
AdapterView.OnItemSelectedListener lst_bottomSpinner_changed_element = new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
//
final String[] top_spinner_items = new String[35];
for (int i = 0; i < top_spinner_items.length; i++) {
top_spinner_items[i] = Integer.toString(i+1);
}
ArrayAdapter<String> spn_topItemsAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, top_spinner_items);
spn_topItemsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
}
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
};
(all the missing references are in the code are between or before the code)
My question is why inside AdapterView.OnItemSelectedListener
ArrayAdapter<String> spn_topItemsAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, top_spinner_items);
gives error. It says “the constructor is undefined”. I tryed using android.widget.ArrayAdapter, but got none.
I’m trying to change the adapter of a spinner when a previous spinner is changed(i want the second spinner to have the value setted in the previous one)
Do you have any idea?
You got a compile error because you pass an instance of
AdapterView.OnItemSelectedListenerto the constructor of the adapter instead of context. Modify your code inonItemSelected, adding classname of yourActivitybeforethis:And, you missed setting the adapter to your
ListViewininItemSelected, likeparentView.setAdapter(spn_topItemsAdapter);.However, I think, changing whole adapter in
onItemSelectedisn’t a good idea. You’d better modify the existing one.