我已经阅读了很多关于如何从数据库中填充listview的文章。但我只是不能在我的应用程序上做!我不知道我做错了什么。 I'm很新的编程所以有配发的东西我不理解,但我尝试学习:)从我的数据库填充ListView
我将项目添加到数据库中,而不使用此代码在活动中出现任何问题:
String selectedstone = (String) stonespinner.getSelectedItem();
String weight = etaddweight.getText().toString();
db.addStone(new MyStonesDatabase(selectedstone, weight));
在DatabaseHandler.java我有这样的:
// Adding new stone
void addStone(MyStonesDatabase stone) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_STONE, stone.getStone());
values.put(KEY_WEIGHT, stone.getWeight());
// Inserting Row
db.insert(TABLE_MYSTONES, null, values);
db.close(); // Closing database connection
}
我可以看到我的数据库被填充通过运行这个:
Log.d("Reading: ", "Reading all items..");
List<MyStonesDatabase> items = db.getAllstones();
for (MyStonesDatabase cn : items) {
String log = "Id: " + cn.getID() + ", Stone: "
+ cn.getStone() + ", Weight: " + cn.getWeight();
// Writing Items to log
Log.d("Name: ", log);
}
但是,当试图有一个列表视图来显示数据库我的应用程序崩溃或不显示任何东西。在我DatabaseHandler.java我有这样的:
// Getting All items from database
public List<MyStonesDatabase> getAllstones() {
List<MyStonesDatabase> stoneList = new ArrayList<MyStonesDatabase>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_MYSTONES;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
MyStonesDatabase stone = new MyStonesDatabase();
stone.setID(Integer.parseInt(cursor.getString(0)));
stone.setStone(cursor.getString(1));
stone.setWeight(cursor.getString(2));
// Adding stone to list
stoneList.add(stone);
} while (cursor.moveToNext());
}
// return stonelist
return stone;
}
我不知道要放什么东西在我的活动,应显示列表视图。
public class MyStones extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
能有人帮我,我将要放弃嘿嘿:) 的感谢!
你能帮我们一个忙,并发布您的logcat文件,或者错误信息?谢谢! – BlackHatSamurai 2012-07-09 18:56:31
你正在返回'stone'而不是'stonelist'检查你的返回值'List'这就是一点 –
Hunt
2012-07-09 18:58:29
你的类名非常误导......'MyStonesDatabase'是存储在数据库中的一个Item,但我首先想到它是您的实际数据库 – 2012-07-09 18:59:20