我试图从数据库中获取实际项目但我的方法似乎正在返回一个路径。任何帮助将不胜感激。
获取所有产品的方法:
// Getting All Products
public List<Product> getAllProducts() {
List<Product> productList = new ArrayList<Product>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_PRODUCT;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Product product = new Product();
product.setId(Integer.parseInt(cursor.getString(0)));
product.setName(cursor.getString(1));
product.setImage(cursor.getString(2));
product.setPrice(cursor.getFloat(3));
// Adding product to list
productList.add(product);
} while (cursor.moveToNext());
}
// return product list
return productList;
}
我的数组适配器:
products = db.getAllProducts();
adapter = new ArrayAdapter<Product>(MainPage.this, android.R.layout.simple_list_item_1, products);
productList.setAdapter(adapter);
这是将它返回到列表视图的方式: “com.handy.shoppy.Product@43e9578”
谢谢你。
答案 0 :(得分:2)
ArrayAdapter
的默认实现在它所拥有的对象列表上调用toString()
。 toString()
的默认实现只是为您提供ClassName@hashCode
您可以覆盖toString()
中的Product
,以便输出成员字段,但更好的方法是子类ArrayAdapter
and override the getView()
方法,以便您分配每个属性您的Product
与行布局中的特定View
。