Android数据库返回项目的路径而不是实际项目

时间:2014-01-17 02:20:53

标签: android listview android-sqlite

我试图从数据库中获取实际项目但我的方法似乎正在返回一个路径。任何帮助将不胜感激。

获取所有产品的方法:

// 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”

谢谢你。

1 个答案:

答案 0 :(得分:2)

ArrayAdapter的默认实现在它所拥有的对象列表上调用toString()toString()的默认实现只是为您提供ClassName@hashCode

您可以覆盖toString()中的Product,以便输出成员字段,但更好的方法是子类ArrayAdapter and override the getView()方法,以便您分配每个属性您的Product与行布局中的特定View