2009-12-01 55 views
2

將數組加載到位於不同視圖中的微調控件上時出現問題。數組在名稱爲beerstyles的arrays.xml中正確定義。 beerstylespinner在carbonationcalculator_view.xml中被定義爲微調的id。當代碼在主要的java類中,但不是額外的碳化計算器類時,這是有效的。除了不在數組中填充微調框之外,一切都可以使用。在定義了不同類的另一個視圖上使用微調框(Android)

下面是代碼:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.carbonationcalculator_view); 

    Spinner s = (Spinner) findViewById(R.id.beerstylespinner); 

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.beerstyles, R.layout.carbonationcalculator_view); 

    adapter.setDropDownViewResource(R.layout.carbonationcalculator_view); 

    s.setAdapter(adapter); 
} 

回答

1

我不知道這將解決這個問題,但似乎有什麼佈局,爲適配器的下拉資源設置一些混亂。 setContentView()應該用於您想爲活動設置的視圖;然而,下拉資源應該是你想要的每一行看起來像。

你應該使用的是類似android.R.layout.simple_list_item_1的東西。您可以模擬演示List1.java,但不是其構造函數可以使用:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
     this, R.array.beerstyles, android.R.layout.simple_list_item_1); 

而且,你不需要使用ArrayAdapter.createFromResource()後致電ArrayAdapter.setDropDownViewResource() - 第三個參數下拉視圖資源。

+0

感謝您的快速響應。我試圖做到這一點,微調仍然沒有綁定到我的陣列。如果我在我的主類中使用相同的代碼,它完美的工作。有什麼我應該做的從另一個角度和另一個類來處理這些控制?作爲一個附註,沒有\t adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);在微調下拉列表中沒有任何內容出現。 感謝您的任何幫助。 – TSDEV 2009-12-02 12:50:45

+0

這是當您嘗試在不完全理解語言的情況下構建Android應用程序時發生的情況!我意識到我做了什麼,我有幾個視圖和一個菜單來打開每個視圖。但是,這就是我所做的一切,打開視圖,我沒有定義意圖。將修改和重新測試,我有一種感覺它會起作用。應該與該視圖綁定的代碼從未被執行。 – TSDEV 2009-12-02 14:54:50