我已经想出如何在使用开关盒选择旋转器中的项目后显示一些文本。 但是现在如果我选择一个项目,文本就不会立即出现。
当我第一次选择项目时,“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.
}
}
答案 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;
}
}