2013-02-04 56 views
0

我有一個(簡單的)二維數組。我正在嘗試的是使用該數組中的數據填充微調器。(Android)二維數組和微調器

String ap1[][] = new String[5][2]; 
ap1[0][0]="First item"; 
ap1[0][1]="1"; 
ap1[1][0]="Second item"; 
ap1[1][1]="2"; 
//etc. etc. etc. 

Spinner apSpinner = (Spinner) findViewById(R.id.ap_spinner); 

現在的微調應該得到由每個數組項第一要素(如「第一項」,「第二項」,...)和第二項填充應該讀一個選擇之後一直製作並用於後面的計算。

我試着下面的代碼,但得到了一些奇怪的文字像LJava.Lang.String; @ ...

ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, ap1); 
apSpinner.setAdapter(spinnerArrayAdapter); 

對我的問題任何線索?

回答

1

向數組添加維度會讓您的生活更加艱難。如果你的第二個維度的目標是

選擇已經作出,並在使用後

可以實現/獲得position+1相同數量後,應閱讀。取決於何時/如何使用它。

你還必須記住,你在你的列表(Docs)見:

要使用比TextViews爲陣顯示器以外的東西,對於 例如,ImageViews,或有一些數據之外toString() 結果填充視圖,覆蓋getView(int,View,ViewGroup)到 返回你想要的視圖類型。

所以你會看到String[].toString(),因爲它的第二維。因此,你看[email protected]

+0

@MarsMan如果你發現這有幫助和解決了這個問題,你可以通過檢查答案左邊的綠色標記標記爲正確的答案。 – wtsang02

+0

我同意讓生活更難:)。第二個位置的數字不像給出的示例代碼那麼簡單。它甚至不會以相同的步幅遞增...... – MarsMan

+0

在這種情況下。你應該做一個自定義班。你面對的最大問題是在數組中,你不能覆蓋toString()方法(如上一句中所述)。你可以使用Overrided toString()方法創建ArrayList ,並保存第二個位置號。 – wtsang02