Reputation: 3063
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?
Upvotes: 1
Views: 2309
Reputation: 9258
You got a compile error because you pass an instance of AdapterView.OnItemSelectedListener
to the constructor of the adapter instead of context. Modify your code in onItemSelected
, adding classname of your Activity
before this
:
ArrayAdapter<String> spn_topItemsAdapter = new ArrayAdapter<String>(YourActivity.this,
android.R.layout.simple_spinner_item, top_spinner_items);
And, you missed setting the adapter to your ListView
in inItemSelected
, like parentView.setAdapter(spn_topItemsAdapter);
.
However, I think, changing whole adapter in onItemSelected
isn't a good idea. You'd better modify the existing one.
Upvotes: 2