在listview而不是toast中显示sqlite数据库中的数据?

时间:2014-10-27 16:39:57

标签: java android sqlite android-layout

是否可以在listview而不是toast中显示sqlite数据库中的以下数据,如下面的代码所示?

btnlist = (Button) findViewById(R.id.btnlist);
    btnlist.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            handler = new Datahandler(getBaseContext());
            String getName, getaddress, getDate, getTime, getSchoolName;
            getName = "";
            getaddress = "";
            getDate = "";
            getTime = "";
            getSchoolName = "";

            handler.open();
            Cursor C = handler.returnData();// return actual data from
                                            // database
            if (C.moveToFirst()) {
                do {
                    getName = C.getString(0);
                    getaddress = C.getString(1);
                    getDate = C.getString(2);
                    getTime = C.getString(3);
                    getSchoolName = C.getString(4);

                } while (C.moveToNext());
            }
            handler.close();
            Toast.makeText(
                    getBaseContext(),
                    " Name :" + getName + "Address :"
                            + getaddress + "Date :" + getDate + "Time :"
                            + getTime + "School :" + getSchoolNname,
                    Toast.LENGTH_LONG).show();
        }
    });
}

2 个答案:

答案 0 :(得分:0)

按列表视图我假设你的意思是第一行有名字,第二行有地址,第三行有日期等等?如果是这样,我建议您实际制作10个文本视图,5个用于标签,5个用于数据。如果需要滚动,可以将它们放入滚动视图中。一旦你有了这些文本视图,就可以在带有数据的5个文本视图上调用.setText(...),用你在变量中的数据填充它们,例如getName。

我说这样做的原因是为了与典型的Android设计保持一致。通常,列表视图用于显示数据列表,其中每行显示相同键的不同值,例如联系人。看起来你总是有五个数据点,所以我们不需要列表视图的开销,一组静态的文本视图就可以很好地满足这个目的。

答案 1 :(得分:-1)

是的,当然可能:)

您已经完成了从数据库中获取数据的艰苦工作。

我为你准备了一个超级快速的例子。显然,您需要通过阅读一些内容并遵循一些教程来填补空白。这是一个好的开始: http://www.vogella.com/tutorials/AndroidListView/article.html

http://webdeveloperpadawan.blogspot.co.uk/2014/09/android-listview-with-differing-rows.html

您需要做的是为您的学生详细信息或其他任何内容创建自定义对象。然后而不是做

String getName = C.getString(0)

你会做这样的事情:

List<Student> students;
Student student;
do{
    student.setName(C.getString(0));
    ...
    //Then you add that student into a List of students
    students.add(student);
}

然后创建一个扩展学生列表的自定义适配器:

public class AdapterStudents extends ArrayAdapter<Student>{
    //...
}

然后创建适配器的实例,最后将该适配器设置为listview。

正如我所说的那样,按照一些教程了解更具体的内容,但这是你的基本行动计划:)

祝你好运。