2

所以我找到了一些我正在努力工作的代码。我是 Android/Exclipse/Java 的新手,但我仍在努力思考整个事情。然而,我正在盲目地主演自己。

说我有这个:

private class RSSListAdapter extends ArrayAdapter<MyRSSItem> {
  private List<MyRSSItem> objects = null;        
  public RSSListAdapter(Context context, int viewid, List<MyRSSItem> objects) {
    super(context, viewid, objects);                       
    this.objects = objects;            
  }
}

然后在其他地方:

myRssAdapter = new RSSListAdapter(thisActivityContext, newsListView, myItemsDataArrayList);

wheremyItemsDataArrayList声明如下:

ArrayList<MyRSSItem> myItemsDataArrayList = new ArrayList<MyRSSItem>();

我收到此错误:

构造函数 News.RSSListAdaptor(Context, ListView, ArrayList) 未定义

当然我试过谷歌,但是,没有运气。

4

1 回答 1

5

构造函数的定义是这样的:

public RSSListAdapter(Context context, int viewid, List<MyRSSItem> objects) {

这意味着它只接受 a Context、 anint和 aList <MyRSSItem>

但是,您使用以下参数调用构造函数:

new RSSListAdapter(thisActivityContext, newsListView, myItemsDataArrayList);

第二参数是 a newsListView,它不是 a int,它是 a ListView。它们不是同一类型,因此会出现编译时错误。

如果您更改为android.R.id.text1,它应该可以工作,因为这是一个有效的 TextView id,就像超类构造函数所要求的那样。

并且绝对不要忘记在创建后将ListView' 适配器设置为您的适配器。RSSListAdapter

有关更详细的信息,教程非常有用。

于 2013-02-19T01:48:29.787 回答