Спиннер переключателя Android не появляется сразу - PullRequest
0 голосов
/ 30 августа 2011

Я выяснил, как отобразить некоторый текст после выбора элемента из счетчика, с переключателем. Но теперь текст не появляется сразу, если я выбираю элемент.

Когда я выбираюВ первый раз, «spotinfo» остается пустым.Когда я выбираю второй элемент, он добавляет текст в «spotinfo».

Может кто-нибудь сказать, почему текст появляется не сразу?

public class InputItemSelectedListener implements OnItemSelectedListener {
   public void onItemSelected(AdapterView<?> parent, View view, int pos , long id) {
          spotInfo.loadData("", "text/html", "utf-8");
          String data = "<div style=\"color: #949494;\">";

          switch(parent.getSelectedItemPosition()){
            case 0:
                data += getString(R.string.Panoramaterras);
                break;
            case 1:
                data += getString(R.string.about);
                break;
          } 

          data += "</div>";
          spotInfo.loadData(data, "text/html", "utf-8");
    }

    public void onNothingSelected(AdapterView<?> parent) {
      // Do nothing.
    }

}

1 Ответ

0 голосов
/ 30 августа 2011

Какой товар вы выбираете первым?Если вы выбираете уже выбранный элемент, вместо него вызывается onNothingSelected.

Хотя вы, возможно, ничего не выбрали вручную, Spinner вызывает onItemSelected после инициализации.Если вы не хотите, чтобы это происходило, вам следует заключить код в логическую проверку, которая устанавливается после первой инициализации счетчика.

boolean hasSpinnerLoaded = false;

public class InputItemSelectedListener implements OnItemSelectedListener {
    public void onItemSelected(...) {
        if (hasSpinnerLoaded) {
            //do your switch statement here
        }
        else
            hasSpinnerLoaded = true;
    }
}
...