2013-03-20 39 views
1

我想使用自定義列表視圖與arrayadapter。我有這個適配器的佈局。但我想以編程方式創建此適配器的佈局.Arrayadapter將此佈局的ID傳遞給它的超級。它不接受佈局。我如何傳遞佈局對象而不是resourceId?android如何設置編程準備的arrayAdapter佈局

super(context,LayoutResourceId,ArrayList);

+0

其中是定義了LayoutResourceId和ArrayList? – 2013-03-20 08:36:41

+0

改爲使用BaseAdapter,而不需要將任何id傳遞給超類 – Atrix1987 2013-03-20 08:37:54

+0

通常,它需要來自R.java的layoutResourceId,它是佈局的id,Arraylist是myObject的列表。但現在它不在R.java中,它以編程方式在baseAdapter中編寫代碼 – nikinci 2013-03-20 08:41:35

回答

1

你可能不需要把它擴大,只是實例並使用它...使用此構造一個ArrayAdapter:http://developer.android.com/reference/android/widget/ArrayAdapter.html#ArrayAdapter(android.content.Context, int, int)

new ArrayAdapter(context, layoutResourceId,arrayList); 
+0

我想傳遞layout對象而不是layoutResourceId。在setContentview()方法上,它需要id或view或view和layout。但arraydapter絕對需要layoutResourceId – nikinci 2013-03-20 09:10:37

+0

你不能這樣做,佈局對象被適配器按需實例化(充氣),這就是我們使用適配器的原因。它不僅會在內部創建一個視圖對象(佈局對象),而且會構建UI的必要數量......並按需執行。你爲什麼不想通過ID? – 2013-03-20 09:19:49

+0

我正在開發一個sdk項目。它基於項目的Java不是一個Android項目。我有一個活動類,我必須以編程方式創建佈局 – nikinci 2013-03-20 09:28:18

0

沒有它不可能。因爲ArrayAdapter沒有默認的構造函數。也需要指定視圖的結構以及它應該在哪個視圖上繪製視圖這就是爲什麼arrayadapter將佈局ID和上下文作爲其參數之一

 ArrayAdapter(Context context, int textViewResourceId) is the constructor of ArrayAdapter with least parameter.