2011-08-17 70 views
1

我正在爲我的列表視圖做一個自定義arrayAdapter,但像我的超級構造函數這樣的簡單事情搞砸了我!Android自定義arrayadapter構造函數問題

private ArrayAdapter<ScheduleTime> timeHold; 
    //make proper constructor, see use ticket types 
    public TimeTableAdapter(Context context, int textViewResourceId, 
      ArrayAdapter<ScheduleTime> timesTable) { 
     super(context, textViewResourceId, timesTable); 
     this.timeHold = timesTable; 
    } 

我上super行錯誤:

super(context, textViewResourceId, timesTable);

The constructor SimpleAdapter(Context, int, ArrayAdapter<ScheduleTime>) is undefined

缺少什麼我在這裏?我的上述構造函數顯然具有所有這些元素

+0

當它說'構造函數SimpleAdapter(Context,int,ArrayAdapter )是未定義的,這意味着它們是錯誤的**元素。它*告訴你你有這些元素,但是沒有爲簡單適配器定義。正如@JB Nizet所說,一個簡單的適配器有不同的'super'參數。 – Kgrover

回答

2

只是因爲你正在定義的構造函數需要一個特定的參數列表,並不意味着超類具有該構造函數。畢竟,您可以爲您的構造函數定義任何任意的參數列表。

您嘗試調用的超級構造函數最接近ArrayAdapter類中的構造函數,但錯誤消息表明您嘗試從SimpleAdapter繼承。你有這個權利嗎?如果它應該是ArrayAdapter,則最後一個參數需要是支持適配器的對象的數組(或列表),而不只是該類型的單個對象。

如果它是SimpleAdapter,唯一的構造函數是 here,它看起來有點不同。

+0

哦哎呀! Java基礎知識 – CQM

1

super用於調用超類的構造函數,即要擴展的類。看看the documentationSimpleAdapter的構造函數有不同的參數。