当选定项发生更改时,如何设置微调器的事件侦听器?
基本上,我正在尝试做的事情与以下内容类似:
spinner1.onSelectionChange = handleSelectionChange;
void handleSelectionChange(Object sender){
//handle event
}
发布于 2013-03-27 19:15:19
您可以在您的活动中实现AdapterView.OnItemSelectedListener
类。
然后在onCreate()
中使用下面这一行
Spinner spin = (Spinner) findViewById(R.id.spinner);
spin.setOnItemSelectedListener(this);
然后覆盖这两个方法:
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
selection.setText(items[position]);
}
public void onNothingSelected(AdapterView<?> parent) {
selection.setText("");
}
发布于 2012-12-10 13:41:50
找到您的微调器名称和id,然后实现此方法。
spinnername.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// your code here
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
发布于 2016-08-23 21:02:20
在onCreate或onStart中设置OnItemSelectedListener都无关紧要-在Activity创建或启动期间(分别)仍然会调用它。
所以我们可以在onCreate (而不是onStart!)中设置它。
只需添加一个标志来确定第一次初始化:
private Spinner mSpinner;
private boolean mSpinnerInitialized;
然后在onCreate (或onCreateView)中只需:
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
if (!mSpinnerInitialized) {
mSpinnerInitialized = true;
return;
}
// do stuff
}
public void onNothingSelected(AdapterView<?> adapterView) {
return;
}
});
https://stackoverflow.com/questions/1337424
复制相似问题