无法使用Spinner触发onItemSelectedListener?

时间:2012-03-04 15:24:50

标签: android

我有一个从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派生的适配器?

由于

1 个答案:

答案 0 :(得分:1)

如果没有看到适配器的实现,我只能猜测你在适配器的实现中出错了。我没有看到你的任何方法的实现。大概是你实现了它们,否则你的代码就不会编译,但是如果你没有提供足够的结构,那么你会错过你需要的东西。

我很好奇你为什么不只是使用ArrayAdapter来支持微调器。