У меня проблема с SQLite на Android. Прямо сейчас, я потянув объект JSON от сервера, разбор его и положить каждый суб-объект в таблице с вещами, такими как имя, ROW_ID, уникальный идентификатор и т.д., используя этот код:Android SQLite Повторяющиеся элементы
public void fillTable(Object[] detailedList){
for(int i=0;i<detailedList.length;++i){
Log.w("MyApp", "Creating Entry: " + Integer.toString(i));
String[] article = (String[]) detailedList[i];
createEntry(article[0], article[1], article[2], article[3], article[4], article[5]);
}
}
createEntry делает то, на что это похоже. Он принимает 6 строк и использует cv.put для записи. Нет проблем.
Когда я пытаюсь заказать их, однако, с помощью:
public String[] getAllTitles(int m){
Log.w("MyApp", "getTitle1");
String[] columns = new String[]{KEY_ROWID, KEY_URLID, KEY_URL, KEY_TITLE, KEY_TIME, KEY_TAGS, KEY_STATE};
Log.w("MyApp", "getTitle2");
Cursor c = ourDatabase.query(DATABASE_TABLENAME, columns, null, null, null, null, KEY_TIME);
Log.w("MyApp", "getTitle3");
String title[] = new String[m];
Log.w("MyApp", "getTitle4");
int i = 0;
int rowTitle = c.getColumnIndex(KEY_TITLE);
Log.w("MyApp", "getTitle5");
for(c.moveToFirst();i<m;c.moveToNext()){
title[i++] = c.getString(rowTitle);
Log.w("MyApp", "getTitle " + Integer.toString(i));
}
return title;
}
Каждой записи на самом деле имеет много дубликатов. Я принимаю столько дубликатов, сколько раз, когда синхронизировал. Есть ли способ ручного вызова метода onUpgrade, который отбрасывает таблицу и создает новую, или лучший способ очистить дубликаты?
Другой вопрос, есть ли способ заказать обратный? Я заказываю по времени, и самые старые добавленные записи сначала (наименьшее число). Есть ли обратная сторона этого?
Спасибо. Ранее я видел тег «desc», но это было для людей, реализующих другие классы SQL, чем я. Благодаря! –