Android开关微调器不会立即出现

时间:2011-08-30 18:55:49

标签: android spinner

我已经想出如何在使用开关盒选择旋转器中的项目后显示一些文本。 但是现在如果我选择一个项目,文本就不会立即出现。

当我第一次选择项目时,“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 :(得分:0)

您先选择哪个项目?如果您选择的是已选择的项目,则会调用onNothingSelected。

虽然您可能没有手动选择任何内容,但Spinner在初始化后调用onItemSelected。如果您不希望发生此行为,则应将代码包装在微调器初始化后设置的布尔检查中。

boolean hasSpinnerLoaded = false;

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