2014-10-27 67 views
0

如下面的代码所示,是否可以在列表视图中显示来自sqlite数据库的以下数据而不是以下内容?在列表视图中显示来自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(); 
     } 
    }); 
} 
+0

只需使用'SimpleCursorAdapter'。 – 2014-10-27 16:54:41

+0

你知道该怎么做吗?我错了 – user3417481 2014-10-27 17:14:08

回答

-1

是当然的可能:)

你已经做了获取数据从数据库中的辛勤工作。

我已经为您制作了一个超级快速示例。显然你需要通过阅读一些内容并遵循一些教程来填补空白。这里有一个良好的开端: http://www.vogella.com/tutorials/AndroidListView/article.html

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

你需要做的是创建一个自定义对象为您的学生的详细信息或任何他们。然后,而不是做

字符串的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>{ 
    //... 
} 

然后你创建你的适配器的实例,最后只需将该适配器设置为你的列表视图。

正如我所说遵循更多的细节了几个教程,但有你的行动的基本计划:)

好运。

+2

对于带有'Cursor'的数据库数据''CursorAdapter'是更好的选择:http://developer.android.com/reference/android/widget/CursorAdapter.html – Philio 2014-10-27 17:05:54

+0

public Cursor getDatahandlerCursor(Context context ){ \t \t SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder(); \t \t queryBuilder.setTables(TABLE_NAME); \t \t \t \t游标cursor = queryBuilder。查询(DATA_BASE_NAME,新的String [] { \t \t \t \t etName, \t \t \t \t etaddress, \t \t \t \t et_Date, \t \t \t \t et_time, \t \t \t \t etSchoolName}, \t \t \t \t NULL,NULL,NULL,NULL,NULL); \t \t返回游标; \t} 我已经做了这个,但我在queryBuilder.query – user3417481 2014-10-27 18:50:13

0

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

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

+0

错误,但我只想列出所有数据在列表视图中的数据 – user3417481 2014-10-27 17:14:55

相关问题