我正在尝试将项目添加到ArrayList,然后将列表导出到SDCARD上的CSV文件,这是一个代码示例:
try
{
String csv = "/sdcard/order.csv";
CSVWriter writer = new CSVWriter(new FileWriter(csv));
HdwOrderCursor = HDWDBHelper.fetchAllOrders();
startManagingCursor(HdwOrderCursor);
List<String[]> mArrayList = new ArrayList<String[]>();
HdwOrderCursor.moveToFirst();
while(!HdwOrderCursor.isAfterLast()) {
mArrayList.add(HdwOrderCursor.getString(HdwOrderCursor.getColumnIndex(HDWDBHelper.KEY_ITEMNUM))); //add the item
HdwOrderCursor.moveToNext();
}
writer.writeAll(mArrayList);
writer.close();
}
'mArrayList.add'有一个错误“类型List中的方法add(String [])不适用于参数(String)”,不知道这意味着什么。
答案 0 :(得分:0)
&#39; mArrayList.add&#39;出现错误&#34;类型List中的方法add(String [])不适用于参数(String)&#34;,不确定这意味着什么。
这是一个非常明显的错误,它告诉你的是:
1)方法&#34; mArrayList.add()&#34;取一个String []作为它的参数。 2)您尝试将String传递给.add()方法,而不是String []。
因此,您需要检查并确保您的方法返回您期望的参数,如果是,则需要修改添加代码以解决此问题。
基本上你做了什么:
List<String[]> mArrayList = new ArrayList<String[]>();
此调用创建一个String [] s。
列表在此电话会议中:
mArrayList.add(HdwOrderCursor.getString(HdwOrderCursor.getColumnIndex(HDWDBHelper.KEY_ITEMNUM))); //add the item
您明确地从数据库中获取STRING,然后尝试将String放入String []的列表中。
快速解决此问题的方法是:
mArrayList.add(new String[] {HdwOrderCursor.getString(HdwOrderCursor.getColumnIndex(HDWDBHelper.KEY_ITEMNUM))}); //add the item
但是,我实际上并不认为你想要一个String []列表,所以更好的选择是改变:
List<String[]> mArrayList = new ArrayList<String[]>();
为:
List<String> mArrayList = new ArrayList<String>();
答案 1 :(得分:0)
Cursor#getString
会返回String
,而不是String[]
数组。您必须使您的ArrayList保持String
个对象(List<String> mArrayList = new ArrayList<String>
)或将光标的结果包装在一个数组中:
`mArrayList.add(new String[] {HdwOrderCursor.getString(HdwOrderCursor.getColumnIndex(HDWDBHelper.KEY_ITEMNUM))});