2014-10-17 68 views
0

我是Android編程新手。我正在用不同類型的行在ListView上做一個示例。我創建了一個從ArrayAdapter擴展的CustomAdapter構造函數ArrayAdapter <String>(Context,int,MainActivity.ListViewItem [])未定義

public class CustomAdapter extends ArrayAdapter<String> { 
    public static final int TYPE_ODD = 0; 
    public static final int TYPE_EVEN = 1; 
    public static final int TYPE_WHITE = 2; 
    public static final int TYPE_BLACK = 3; 

    private final Context context; 
    private final int resource; 
    private ListViewItem[] objects; 

    public CustomAdapter(Context context, int resource, ListViewItem[] objects) { 
     super(context, resource, objects); 
     this.context = context; 
     this.resource = resource; 
     this.objects = objects; 
    } 

Eclipse顯示super(context,resource,objects);行作爲錯誤「構造函數ArrayAdapter(Context,int,MainActivity.ListViewItem [])未定義」

我不明白爲什麼會發生這種情況。請幫助。

回答

2

尖括號(<String>)中的數據類型需要與您提供的數組中的數據類型匹配(ListViewItem[])。在你的情況下,他們不。

最有可能的,你應該:

  1. 使此一ArrayAdapter<ListViewItem>

  2. 刪除private ListViewItem[] objects,因爲它是不必要的,將會給你帶來麻煩 - 使用getItem()從父訪問數組

最有可能的是,您也不需要private final int resource,因爲它不太可能你會使用它,但我無法排除這一點。

1
public class CustomAdapter extends ArrayAdapter<ListViewItem> { 
    public static final int TYPE_ODD = 0; 
    public static final int TYPE_EVEN = 1; 
    public static final int TYPE_WHITE = 2; 
    public static final int TYPE_BLACK = 3; 

    private final Context context; 
    private final int resource; 
    private ListViewItem[] objects; 

    public CustomAdapter(Context context, int resource, ListViewItem[] objects) { 
     super(context, resource, objects); 
     this.context = context; 
     this.resource = resource; 
     this.objects = objects; 
    } 


---------- 
see the first line of answer just change this line 

public class CustomAdapter extends ArrayAdapter<String> 
to 
public class CustomAdapter extends ArrayAdapter<ListViewItem> 
相關問題