在listview中显示sqlite数据库中的数据

时间:2014-10-24 20:21:00

标签: android sqlite listview

我正在尝试从我的sqlite表中显示listview中的数据。我可以查看表格,似乎信息正确无误。当我运行我的应用程序时,列表视图出现但它显示我的包名称,其中包含一些数字和字母,而不是我的表中的数据。任何帮助,将不胜感激。谢谢。

这是我的代码,用于从表中获取所有信息

public List<Habits> getAllHabits(){
    SQLiteDatabase db = this.getWritableDatabase();
    List<Habits> habitsList = new ArrayList<Habits>();
    String query = "SELECT * FROM " + TABLE_HABIT;
    Cursor cursor = db.rawQuery(query,null);
    if(cursor.moveToFirst()){
        do{
            Habits habit = new Habits();
            habit.setHabit(cursor.getString(1));
            habit.setDate(cursor.getString(2));
            habitsList.add(habit);
        }while(cursor.moveToNext());

    }
    cursor.close();
    return habitsList;

}

显示它的代码:

public class ViewHabits extends ListActivity {

Cursor cursor;
private Databasehandler db;
String info;
private ListView datalist;
ArrayList<String> databaseList = new ArrayList<String>();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    db = new Databasehandler(this);

    List<Habits> values = db.getAllHabits();
    ArrayAdapter<Habits> adapter = new ArrayAdapter<Habits>(this,android.R.layout.simple_list_item_1,values);

    setListAdapter(adapter);

}

1 个答案:

答案 0 :(得分:1)

最简单的方法是覆盖toString()类的Habit方法:

  

但是引用了TextView,它将填充数组中每个对象的toString()。您可以添加自定义对象的列表或数组。覆盖对象的toString()方法,以确定将为列表中的项显示哪些文本。

来自文档:ArrayAdapter