Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Listview显示列表时出错_Java_Android_Android Studio - Fatal编程技术网

Java 使用Listview显示列表时出错

Java 使用Listview显示列表时出错,java,android,android-studio,Java,Android,Android Studio,我在DatabaseHelper.java类中有一个公共方法,如下所示: public List<Presentation> getAllPresentations() { List<Presentation> presentations = new ArrayList<Presentation>(); // // // some code // // return presentations; } 公

我在DatabaseHelper.java类中有一个公共方法,如下所示:

public List<Presentation> getAllPresentations() {
    List<Presentation> presentations = new ArrayList<Presentation>();
    //
    //
    // some code
    //
    //
    return presentations;
}
公共列表getAllPresentations(){ 列表演示文稿=新建ArrayList(); // // //一些代码 // // 返回演示文稿; } 在myMainActivity.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));
        }
    });
btnLoad.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
List=db.getAllPresentations();
列表视图l;
l=(ListView)findViewById(R.id.list);
l、 setAdapter(新的ArrayAdapter(这个,R.layout.view_表示,列表));
}
});
但是,这条线上出现了一些问题:

l.setAdapter(new ArrayAdapter<List>(this,R.layout.view_presentation, list));
l.setAdapter(新的ArrayAdapter(这个,R.layout.view_表示,列表));

有人能帮我吗?

至少有两个问题:

  • 在匿名内部类(如
    newview.OnClickListener()
    )的上下文中,
    引用内部类的实例。
    ArrayAdapter
    构造函数需要一个
    Context
    ,因此您必须使用
    MainActivity。此
  • ArrayAdapter
    的类型参数必须是项目类型。因此,在本例中,它应该是
    ArrayAdapter
  • 因此:

    List List=db.getAllPresentations();
    ListView l=(ListView)findViewById(R.id.list);
    l、 setAdapter(新的ArrayAdapter(MainActivity.this,R.layout.view_presentation,list));
    
    @user3659691我正在编辑问题:)现在呢?如果不起作用,请编辑问题并发布编译器错误。很难找到问题,否则“ArrayAdapter的类型参数必须是item类型。因此,在这种情况下,它应该是ArrayAdapter”@matiash在logcat中它不会给我错误。。仅显示查询(例如,从演示文稿中选择*)。此查询由getAllPresentations()方法生成。。现在我想在另一个java类文件中显示此查询的列表。但它没有显示任何内容(@user3659691您确定查询正在返回数据吗?
    List
    已经是一个问题。使用泛型。
    R.layout.view\u presentation
    是什么样子的?您可能需要在
    ArrayAdapter
    中实现
    getView()
    
        List<Presentation> list = db.getAllPresentations();
        ListView l = (ListView)findViewById(R.id.list);
        l.setAdapter(new ArrayAdapter<Presentation>(MainActivity.this, R.layout.view_presentation, list));