2011-08-30 82 views
0

我已經想出瞭如何從微調框中選擇一個項目後,顯示一些文本,與開關的情況下.. 但現在,如果我選擇一個項目,文本不會立即出現。Android開關微調不立即顯示

當我第一次選擇一個項目時,「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

哪一項是你第一選擇?如果您選擇的是已選項目,則會調用onNothingSelected。

儘管您可能沒有手動選擇任何內容,但在初始化後,Spinner會調用onItemSelected。如果您不希望發生這種情況,您應該將代碼封裝在一個布爾檢查中,該檢查在微調器初次初始化後設置。

boolean hasSpinnerLoaded = false; 

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