为什么不调用onNothingSelected

时间:2011-11-30 04:41:38

标签: 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;

            }
        });

当活动开始onItemSelected方法被调用

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

2 个答案:

答案 0 :(得分:4)

您必须使用标志来维护该状态。当您的Activity开始时,Spinner已经将其第一个项目选中,因此在启动Activity时会调用它onItemSelected

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

int first_spinner = 0, first_spinner_counter = 0;

现在初始化微调器集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;
            }
        });

答案 1 :(得分:0)

只需检查位置。当Spinner触发时,默认选择第一个位置

if(position==0)
//donothing
else
{
// do your part here
}