我正在尝试从我的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);
}
答案 0 :(得分:1)
最简单的方法是覆盖toString()
类的Habit
方法:
但是引用了TextView,它将填充数组中每个对象的toString()。您可以添加自定义对象的列表或数组。覆盖对象的toString()方法,以确定将为列表中的项显示哪些文本。
来自文档:ArrayAdapter