У меня есть аккуратная, работающая база данных SQLite на Android, которая записывает наблюдения видов. Затем я использую JSON (успешно) для проверки введенных наблюдений по набору параметров в удаленной базе данных. При проверке флаг в базе данных обновляется, чтобы сообщить, что этот процесс завершен. Но когда я просматриваю свою основную деятельность (Текст, значения для наблюдений с флагами после проверки не обновляются.
Мой порядок активности:
- Основная деятельность (obs = 0 из базы данных)
- Obs Вступительная деятельность
- Основная деятельность (obs = 1 с флагом A из db)
- Деятельность по управлению данными, кнопка подтверждения
- Подтверждение выполненного действия, основная кнопка
- Основная деятельность (obs = 1 с флагом A из db)
Если я выйду или оставлю это на некоторое время, а затем вернусь к основному действию, база данных будет правильно опрошена и obs = 1 с флагом B из db.
Так что я знаю, что моя база данных верна и SQL тоже верен. Может быть, я объявляю свои кнопки не в том месте, чтобы действие было правильно возобновлено ()?
Мой код:
final Button verifySightingsButton = (Button) findViewById(R.id.uploadprocess);
if (verifies == 0) {
verifySightingsButton.setTextColor(getResources().getColor(R.color.red));
} else {
verifySightingsButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// do stuff
}
});
}
где «проверяет» - количество записей флага А. Кнопка вызывается методом onCreate()
. Будет ли это иметь какое-то значение, если я создам его экземпляр как переменную класса?
Заранее спасибо - беспокоить меня бессмысленно!
ОБНОВЛЕНИЕ: Это код (фактически использующий XML, а не JSON, который используется для других запросов), который обрабатывает проверку и обновление флага:
// Get details for an observation within loop
ArrayList d = (ArrayList) allVerifyRows.get(i);
// Build the URL to verify the data
String aURL = buildVerifyURL(d);
// Parse the XML
aValid = ParseVerificationXML.verifyXMLdata(aURL);
db.open();
Long bouCode = new Long((String) speciesList.get((String) d.get(3)));
boolean insert = db.updateNote(
((Long) d.get(0)).longValue(),
((Long) d.get(1)).longValue(),
// and some other variables being updated
db.close();
и код для проверки базы данных на наличие записей, которые не проверены:
NotesDbAdapter db = new NotesDbAdapter(this);
db.open();
Cursor c = db.fetchAllNotes();
species = new ArrayList<String>();
while (c.moveToNext()) {
String str1 = c.getString(2); // Date
species.add(str1);
}
c.close();
Cursor v = db.performNullCountForVerification();
if (v.moveToFirst()) {
stillToVerify = v.getInt(0); // Non-Verified records
readyForUpload = stillToVerify;
}
v.close();
stillToVerify = species.size() - stillToVerify;
db.close();