2016-07-16 76 views
3

我試圖建立一個覆蓋默認ArrayAdapter的,像這樣的構造函數的自定義ArrayAdapter:無法繼承和覆蓋ArrayAdapter

private class MyEndpointAdapter extends ArrayAdapter<Endpoint> { 

,但我得到一個錯誤說:

There is no default constructor available in 'android.widget.ArrayAdapter' 

我決定檢查ArrayAdapter的聲明並發現它導入的某些類無法解析

http://i.stack.imgur.com/tauGr.png

我該如何解決這個問題?

回答

0

如果您沒有明確提供構造函數,編譯器會爲您創建一個默認構造函數,它將調用超類的no-arg構造函數。

由於ArrayAdapter沒有無參數構造函數,因此顯然無法進行此調用,因此出現錯誤。

您需要定義構造明確,從超類調用構造函數,例如:

private class MyEndpointAdapter extends ArrayAdapter<Endpoint> { 

    public MyEndpointAdapter(Context context, @LayoutRes int resource, List<Endpoint> objects) { 
     super(context, resource, objects); 
    } 
} 
+0

它的工作,謝謝! – crackly