所以我发现了一些我正在努力工作的代码。我是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);
其中myItemsDataArrayList
的声明如下:
ArrayList<MyRSSItem> myItemsDataArrayList = new ArrayList<MyRSSItem>();
我收到此错误:
构造函数News.RSSListAdaptor(Context,ListView,ArrayList)未定义
我当然试过谷歌,但是,好吧,没有运气。
答案 0 :(得分:5)
构造函数的定义是:
public RSSListAdapter(Context context, int viewid, List<MyRSSItem> objects) {
这意味着它只接受Context
,int
和List <MyRSSItem>
但是,使用以下参数调用构造函数:
new RSSListAdapter(thisActivityContext, newsListView, myItemsDataArrayList);
第二个参数是newsListView
,不是int
,而是ListView
。它们的类型不同,因此编译时错误。
如果您更改为android.R.id.text1
,它应该可以使用,因为这是一个有效的TextView ID,就像superclass constructor所要求的那样。
绝对不要忘记在创建ListView
时将RSSListAdapter
的适配器设置为{{1}}。
有关详细信息,this教程非常有帮助。