Если бы я тебя, я бы работать немного больше и сделать следующее:
Try, чтобы увидеть, если данные в базе данных путем поиска значений для этого ID:
public static Cursor find(SQLiteDatabase db, String uid) {
Tables table = Tables.YourTable;//it can be an enum or something static that contain/gives access to all of your columns. Hopefully it is clear.
return db.query(table.getTableName(),
getColumnNames(table),
COLUMN_NAME_ID + " =?",
new String[]{uid}, null, null, null);
}
Следующая :
Вы создаете адаптер, который может быть доступной форме везде:
MyAdapter implements IMyAdapter
{
@Override
public boolean insert(IRow row){
boolean success = false;
synchronized (lock) {
openIfDatabaseIsClosned();//here you get the writeable database and store it somewhere(I do it for multiple databases).
try {
row.insert(getDB());
success = true;
} catch (Exception e) {
Log.e(TAG, "Error:" + e.getMessage(), e);
}
}
return success;
}
@Override
public boolean update(IRow row) {
boolean success = false;
synchronized (lock) {
openDatabaseIfClosed();
try {
row.update(getDatabase());
success = true;
} catch (Exception e) {
Log.e(TAG, "Your error message:" + e.getMessage(), e);
}
}
return success;
}
}
Ваша строка будет выглядеть так:
interface IRow
{
void insert(SqliteDatabase db);
void update(SqliteDatabase db);
void delete(SqliteDatabase db);
void find(SqliteDatabase db);
}
Далее реализовать что-то вроде
MyRow implements IRow
{
public(to be accessed from outside upon creation) static final String COLUMN_ID = "_id";
public static final string COLUMN_VALUE = "value";
//here you do your implementation, with columns and stuff like that.
//Of course you need to take care of the creation of tables
update(SqliteDatabase db){//TODO}
insert(SqliteDatabase db){//TODO}
delete(SqliteDatabase db){//TODO}
//for update/delete/insert you can here implement the values assemble method.
}
Как вы могли заметить, то YourTable в этом случае что-то под названием MyColumn и содержит некоторые столбцы, которые обычно будут частью MyRow, поэтому при обновлении значений вы можете получить доступ к столбцам. В принципе, вам просто нужно создать таблицы, и все готово. Это работает/работает на меня по 3-4 проектам без каких-либо ошибок.
Я предпочитаю этот способ из-за того, что многие вещи могут ошибиться при передаче строк и т. Д.
Зачем обновлять? Также вы обычно передаете данные адаптеру, к которому он обращается к части данных udpating. –
хорошо, im передавая новые значения. –
Что такое возвращаемое значение db.update? – hinneLinks