ArrayList<String> fieldsNameTasse = new ArrayList<String>();
ArrayList<String> fieldsValueTasse= new ArrayList<String>();
for (int i = 0; i < pagamenti.length(); i++) {
// add stuff to the above arraylists
DBmanager.insert("TasseIncoming", fieldsNameTasse, fieldsValueTasse);
}
Каждый раз, когда вы выполняете цикл, вы просто добавляете значения в конец того, что уже есть в этих ArrayList
с. Так что есть много повторяющихся имен столбцов с разными значениями для каждого. Некоторое быстрое тестирование:
sqlite> create table foo(a, b);
sqlite> insert into foo(a,b,a,b) values(1,2,3,4);
sqlite> select * from foo;
a b
---------- ----------
1 2
указывает, что когда столбец включается несколько раз в INSERT
, используется только первое соответствующее значение. Следовательно, получаются только значения из первой итерации цикла.
Простое решение - переместить определения переменных в цикл, поэтому каждая вставка выполняется с новым набором столбцов и значений:
for (int i = 0; i < pagamenti.length(); i++) {
ArrayList<String> fieldsNameTasse = new ArrayList<String>();
ArrayList<String> fieldsValueTasse= new ArrayList<String>();
// add stuff to the above arraylists
DBmanager.insert("TasseIncoming", fieldsNameTasse, fieldsValueTasse);
}