在我的应用程序中,我有一个具有3个值的微调器。
如果您按第一个,它应该转到活动:UploadPicture
如果按第二个键,则应转到“活动:更改密码”
如果您按最后一个,它应该转到活动:登录
但是,由于spinner在启动时具有第一个值,因此如果选择第一个值,则似乎无法触发ontemselected。(我不想要第四个值:“请选择一个”)。所以我的问题是我该如何触发“无选择”?因为当我选择第一个值时,它不会触发ontemselected。
我的代码:
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
System.out.println(pos + " " + first);
if (!first && pos == 0) {
goUpload();
} else if (!first && pos == 1) {
goInternReportActivity();
//spinner.setSelection(0);
} else if (!first && pos == 2) {
goTeksterActivity();
//spinner.setSelection(0);
}
first = false;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
goUpload();
}
最佳答案
我曾经遇到过同样的问题,想使用onNothingSelected
回调。
我发现如果索引0处的项也有类似于您的方法,我们就不能同时使用onNothingSelected
和onItemSelected
。
根据documentation微调器onItemSelected
只有在以下情况下才会调用回调:
新选定的位置与以前选定的位置不同
如果没有选定的项目。
因此,即使不触摸微调器,索引0项也始终处于选中状态。
即使不是你想做的:索引0中的A fourth value "Select Action"
也是解决问题的最佳解决方案。