Я пытаюсь добавить элементы в ArrayList, а затем экспортировать список в файл CSV на SDCARD, вот пример кода:

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» имеет ошибку «Метод add (String []) в типе List не применим для аргументов (String)», не знаю, что это означает.

0
Garling Beard 8 Янв 2014 в 23:46

1 ответ

Лучший ответ

«MArrayList.add» имеет ошибку «Метод add (String []) в типе List не применим для аргументов (String)», не знаю, что это означает.

Это довольно очевидная ошибка, о чем она вам говорит:

1) Метод mArrayList.add () принимает 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>();
0
Nathaniel D. Waggoner 8 Янв 2014 в 19:57