为什么不调用onNothingSelected

Sun*_*nny 5 android spinner

在活动启动时获取选择的微调项目

  spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {

                  Toast.makeText(parent.getContext(), "The country is " +
                     position , Toast.LENGTH_LONG).show();

            }
            public void onNothingSelected(AdapterView<?> parent) {
                return;

            }
        });
Run Code Online (Sandbox Code Playgroud)

当活动开始onItemSelected方法被调用时

我希望当活动开始时应该没有toast消息.当用户选择一个项目时,应该显示消息.

Lal*_*ani 5

您必须使用标志来维持该状态。当您的 Activity 启动时,Spinner 已经选择了它的第一个项目,因此它onItemSelected在 Activity 启动时被调用。

你可以通过这个来管理它,取两个 int 变量。

int first_spinner = 0, first_spinner_counter = 0;
Run Code Online (Sandbox Code Playgroud)

现在,当您初始化微调器集时,first_spinner = 1;然后添加侦听器

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {

                  if (first_spinner_counter < first_spinner) {
                          first_spinner_counter++;
                    } 
                  else 
                  {
                     Toast.makeText(parent.getContext(), "The country is " +
                     position , Toast.LENGTH_LONG).show();
                  }
            }
            public void onNothingSelected(AdapterView<?> parent) {
                return;
            }
        });
Run Code Online (Sandbox Code Playgroud)