在我的应用程序中,我有一个具有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处的项也有类似于您的方法,我们就不能同时使用onNothingSelectedonItemSelected
根据documentation微调器onItemSelected只有在以下情况下才会调用回调:
新选定的位置与以前选定的位置不同
如果没有选定的项目。
因此,即使不触摸微调器,索引0项也始终处于选中状态。
即使不是你想做的:索引0中的A fourth value "Select Action"也是解决问题的最佳解决方案。

10-08 14:19