我有一个 Android Spinner
,当用户从其弹出对话框中选择某些内容时,我想得到一个回调。似乎setOnItemClickListener()
或setOnItemSelectedListener()
将是正确的使用方法,但是当我选择微调器中的一项时,它们都不会被调用。
有没有正确的方法来做到这一点?
更新
根据 commonsware 的建议,我做了以下事情,但我的onItemSelected()
方法从未被调用:
final Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter( new ArrayAdapter<SettingValue>(getContext(), android.R.layout.simple_list_item_1, android.R.id.text1, setting.getSettingValues() ) );
spinner.setOnItemSelectedListener( new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.d("BOOGA");
final SettingValue settingValue = (SettingValue)parent.getSelectedItem();
final Editor edit = getContext().getSharedPreferences( PREFS_CONTEXT_NAME, Context.MODE_PRIVATE).edit();
edit.putString(setting.name(), settingValue.name());
edit.commit();
}
public void onNothingSelected(AdapterView<?> parent) {
// do nothing
}
});