#android #sqlite #arraylist
#Android #sqlite #arraylist
Вопрос:
Разработчик Android. У меня есть база данных SQLite. Один из моих столбцов называется KEY_SWITCH . Я хочу преобразовать целые числа в этом списке в ArrayList, а затем распечатать его на своей консоли.
Вот мой код:
public ArrayList<Integer> getAllIntegerValues() {
ArrayList<Integer> yourIntegerValues = new ArrayList<Integer>();
Cursor result = db.query(true, DATABASE_TABLE,
new String[] {KEY_SWITCH}, null, null, null, null,
null, null);
if (result.moveToFirst()) {
do {
yourIntegerValues.add(result.getInt(result
.getColumnIndex(KEY_SWITCH)));
} while (result.moveToNext());
} else {
return null;
}
System.out.print(yourIntegerValues);
return yourIntegerValues;
}
Я запускаю код следующим образом
DBAdapter_Metrics mydbmetric;
private SQLiteDatabase dbmetric;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_metric_list);
openDBMetrics();
populateListViewFromDNewBMetric();
mydbmetric.getAllIntegerValues();
}
Когда я запускаю код, я получаю следующую ошибку:
endAllActiveAnimators on 0x915c1380 (RippleDrawable) with handle 0x8f550150
Почему он не печатает мой ArrayList?
Я попытался выполнить поиск по этой ошибке, но обнаружил, что ошибка изменяется в зависимости от того, где в моем коде я запускаю getAllIntegerValues()
Например, когда я создал выпадающее меню с возможностью его запуска, я получил эту ошибку
endAllActiveAnimators on 0x8e3b5300 (MenuPopupWindow$MenuDropDownListView) with handle 0x8ef83f50
Так что, похоже, он меняется в зависимости от того, где я его запускаю, чего я не понимаю.
Ответ №1:
сделайте это, как показано ниже:
System.out.print(Arrays.toString(yourIntegerValues.toArray()));
ОБНОВЛЕНИЕ: другой способ, как показано ниже:
System.out.print(android.text.TextUtils.join(",", yourIntegerValues))
Комментарии:
1. Это работает. Однако теперь у меня есть отдельная проблема. Он выводит только одно значение, 0. Это потому, что каждая запись в столбце равна нулю. Как я могу получить ArrayList для всех значений? То есть я хочу, чтобы он печатал [0 0 0 ….. 0]
2. Без println вы просто получаете исходную ошибку. Вторая часть кода также выдает исходную ошибку.
3. первая работа выполняется на моем устройстве. неважно, все ли ваши данные равны 0. даже если ваши записи равны нулю, первая работает!!
4. ваша ошибка не из-за списка. что-то не так с аниматорами и анимациями. вы использовали какой-либо из них в своем проекте?
5. введите try catch и printstacktrace ошибку. сообщите мне об ошибке, и я расскажу.