这是我的代码
[...]
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
}
};
(代码中所有缺少的引用都在代码之间或之前)
我的问题是为什么在AdapterView.OnItemSelectedListener
中ArrayAdapter<String> spn_topItemsAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, top_spinner_items);
给出错误。它说“构造函数未定义”。我尝试使用android.widget.ArrayAdapter,但没有得到。 当我更改前一个微调器时,我正在尝试更改微调器的适配器(我希望第二个微调器具有在前一个微调器中设置的值)
你有什么想法吗?
答案 0 :(得分:2)
您遇到编译错误,因为您将AdapterView.OnItemSelectedListener
的实例传递给适配器的构造函数而不是上下文。修改onItemSelected
中的代码,在Activity
之前添加this
的类名:
ArrayAdapter<String> spn_topItemsAdapter = new ArrayAdapter<String>(YourActivity.this,
android.R.layout.simple_spinner_item, top_spinner_items);
而且,您错过了将适配器设置为ListView
中的inItemSelected
,例如parentView.setAdapter(spn_topItemsAdapter);
。
但是,我认为,更改onItemSelected
中的整个适配器并不是一个好主意。你最好修改现有的。