Spinner初始化不触发onItemSelected

Spinner在初始化时会自动调用一次OnItemSelectedListener事件,
但在实际开发过程中,我们不需要此功能.本人通过总结,终于找到最简单的解决方法 
提供的解决办法:
第一步:设定Spinner数据源
第二步:注册事件之前调用 spinner.setSelection(0, true);
第三步:注册事件
第四步:将事件中判断 spinner选择索引结果为0,则退出事件处理
    if (arg2==0)
    {
return;
    }

这样OnItemSelectedListener事件不会被触发 



private void initMySpinner() {
        String[] phones = {"iPhone","Android","BlackBerry"};
        ArrayAdapter adapter = new ArrayAdapter(
                this,  android.R.layout. simple_spinner_item,
                phones);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setPrompt("test");
        spinner.setSelection(0, true);
        spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());
    }

  private class SpinnerOnSelectedListener implements     OnItemSelectedListener {
 
@Override
public void onItemSelected(AdapterView arg0, View arg1, int arg2,
long arg3) {
            //退出事件处理(初始化)
    if (arg2==0)
    {
return;
    }
          //处理你选择的事件
          ................
}


@Override
public void onNothingSelected(AdapterView arg0) {
    // TODO Auto-generated method stub

}
}

你可能感兴趣的:(Android)