2013-12-11 67 views
0

我遇到了一个问题,我已经定义了一个微调框并绑定到一个数组资源。问题在于它仅在第一次构建时默认为数组的第一项。我正在使用setPrompt,看起来它完全被忽略。我写了日志,我可以在日志中看到我将它设置为正确的值,但它保持默认为数组中的第一个元素。微调框Android(SetPrompt)

_spnCountDown.setPrompt(setting); 
    Log.d("SETTING_SPINNER", setting); 
    _spnCountDown.setOnItemSelectedListener(new OnItemSelectedListener() 
    { 
     boolean _firstTime = true; 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) 
     { 
      if (_firstTime == false) 
      { 
       String value = _spnCountDown.getSelectedItem().toString(); 
       MobileAppManager.getInstance().storeSetting("CountDown", 
         value); 
       Log.d("SETTING_SPINNER onItemSelected", value); 
      } 
      else 
      { 
       Log.d("SETTING_SPINNER onItemSelected", "Ignore"); 
       _spnCountDown.setPrompt(Settings.this.getInitialCountDown()); 
       _firstTime = false; 

      } 
     } 

     public void onNothingSelected(AdapterView<?> arg0) 
     { 
      // TODO Auto-generated method stub 

     } 
    }); 

我已按照建议使用一个标志,克服onSetItemSelected将首先在第一时间微调构造的事实几个答案。所以,理所当然地,我忽视了第一个电话。不过,正如我所提到的,这是默认的第一次入场。

When it is first loaded The whole list

因此,如果此行不会做任何事情_spnCountDown.setPrompt(“5秒。”)

回答

0

我不知道,但如果我明白你的问题正确这说明也许你应该使用setSelection? Setting default values in spinner in android

+0

你说得对。我在想,setPrompt会隐式设置值,就像Html Select/DropDown一样。 感谢您的注意。 – Sam