我在 DatabaseHelper.java 类中有一个公共方法,如下所示:
public List<Presentation> getAllPresentations() {
List<Presentation> presentations = new ArrayList<Presentation>();
//
//
// some code
//
//
return presentations;
}
在我的 MainActivity.java 中,我添加了以下行:
btnLoad.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
List list = db.getAllPresentations();
ListView l;
l=(ListView)findViewById(R.id.list);
l.setAdapter(new ArrayAdapter<List>(this,R.layout.view_presentation, list));
}
});
但是,有些问题就行了:
l.setAdapter(new ArrayAdapter<List>(this,R.layout.view_presentation, list));
有人可以帮助我吗?
答案 0 :(得分:1)
至少有两个问题:
new View.OnClickListener()
)的上下文中,this
指的是内部类的实例。 ArrayAdapter
构造函数需要Context
,因此您必须使用MainActivity.this
。ArrayAdapter<T>
的类型参数必须是项类型。所以在这种情况下,它应该是ArrayAdapter<Presentation>
。所以:
List<Presentation> list = db.getAllPresentations();
ListView l = (ListView)findViewById(R.id.list);
l.setAdapter(new ArrayAdapter<Presentation>(MainActivity.this, R.layout.view_presentation, list));