我有一个从BaseAdapter扩展的适配器。我正在使用Spinner。当从中选择一个项目时,我无法触发onItemSelectedListener:
public class MyAdapter extends BaseAdapter {
..
}
public void foo() {
MyAdapter adapter = new MyAdapter(...);
adapter.setStuff(new String[] { "foo0", "foo1", "fooN" });
Spinner spinner = (Spinner)findViewById(R.id.foo);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
Log.e("####", "hello?...");
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
Log.e("####", "hello?...");
}
});
spinner.setAdapter(adapter);
}
微调器操作正常,我选择一个项目时只是没有收到任何回调。回调是否仅适用于ArrayAdapter派生的适配器?
由于
答案 0 :(得分:1)
如果没有看到适配器的实现,我只能猜测你在适配器的实现中出错了。我没有看到你的任何方法的实现。大概是你实现了它们,否则你的代码就不会编译,但是如果你没有提供足够的结构,那么你会错过你需要的东西。
我很好奇你为什么不只是使用ArrayAdapter来支持微调器。