我正在尝试将sqllite数据库中的所有列提取到ArrayList.My表名是Products.I创建了一个ArrayList适配器名称Product.I我在DBHELPER类中获取我的表值。但是当我使用ArrayList时添加以添加我的arrayadapter中的所有列值我收到以下错误
无法解析方法add(java.lang.string,java.lang.string)
DBHELPER.JAVA
public ArrayList<Product> getProductdetails()
{
ArrayList<Product> array_list = new ArrayList<Product>();
SQLiteDatabase db = this.getReadableDatabase();
db.beginTransaction();
try {
String selectQuery = "SELECT * FROM " + TABLE_PRODUCTS;
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String product_name = cursor.getString(cursor.getColumnIndex("PRODUCT_NAME"));
String Quantity = cursor.getString(cursor.getColumnIndex("Quantity"));
String PROD_VAT = cursor.getString(cursor.getColumnIndex("PROD_VAT"));
array_list.add(product_name,Quantity,PROD_VAT,PROD_VAT);
// array_list.addAll(Arrays.asList(product_name,Quantity,PROD_VAT,PROD_VAT));
}
}
}catch (Exception e){
e.printStackTrace();
}
finally {
db.endTransaction();
db.close();
}
return array_list;
}
PRODUCT.JAVA
public class Product {
//private variables
String _PRODUCT_CODE;
String _PRODUCT_NAME;
String _PRODUCT_RATE;
String _PRODUCT_VAT;
// Empty constructor
public Product(){
}
// constructor
public Product(String PRODUCT_CODE, String PRODUCT_NAME, String PRODUCT_RATE,String PRODUCT_VAT){
this._PRODUCT_CODE = PRODUCT_CODE;
this._PRODUCT_NAME = PRODUCT_NAME;
this._PRODUCT_RATE = PRODUCT_RATE;
this._PRODUCT_VAT = PRODUCT_VAT;
}
public String getproductcode(){ return this._PRODUCT_CODE;}
public String getproductname(){
return this._PRODUCT_NAME;
}
public String getproductrate(){return this._PRODUCT_RATE;}
public String getproductvat(){return this._PRODUCT_VAT;}
}
答案 0 :(得分:1)
您正在以错误的方式向ArrayList
添加数据。你的ArrayList
是对象的类型(例如你的Product
类),所以你需要传递模型类的实例。
array_list.add(new Product(code,name,rate,vat));
答案 1 :(得分:1)
您的Arraylist
是Product的类型,它是一个模型类,因此您必须在arraylist
中添加模型类,如下所示:
array_list.add(new Product(product_name,Quantity,PROD_VAT,PROD_VAT));
答案 2 :(得分:1)
addAll()
的 java.util.ArrayList class
方法。此方法用于将列表的所有元素添加到另一个列表。
你想要的是获取单曲和&amp;将它添加到数组列表,以及您尝试编码的位置是将单个项目作为集合添加到数组列表中,这是错误的。
您需要按以下方式添加每个模型,
array_list.add(new Product(product_name,Quantity,PROD_VAT,PROD_VAT));
答案 3 :(得分:-1)
修改
array_list.add(product_name,Quantity,PROD_VAT,PROD_VAT);
要
array_list.add(new Product(product_name,Quantity,PROD_VAT,PROD_VAT));