Я использую макет обновления swipe для загрузки данных из локального sqlite. Я установил предел 2 и смещение как 0, когда список обновлен, данные не обновляются. Я не знаю, почему это не работает, кто-нибудь может мне помочь.SwipeRefresh layout не работает в sqlite
База данных:
public ArrayList<TransactionSum> getAllTransactionList(int offset) {
ArrayList<TransactionSum> transactionsum = new ArrayList<TransactionSum>();
String selectquery = "SELECT tid,SUM(totalamount) as 'total',strftime('%m-%Y', tdate) as 'month' FROM " + TRANSACTION_LABELS + " WHERE tdate BETWEEN (select min(tdate) from transactionlabel) AND (select max(tdate) from transactionlabel) GROUP BY strftime('%m-%Y', tdate) ORDER BY strftime('%m-%Y', tdate) DESC LIMIT "+2+" OFFSET "+offset+" ";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectquery, null);
if (cursor.moveToFirst()) {
do {
TransactionSum transactiontotal = new TransactionSum();
transactiontotal.setId(cursor.getString(0));
transactiontotal.setTotalamount(cursor.getString(1));
transactiontotal.setMonth(cursor.getString(2));
transactionsum.add(transactiontotal);
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return transactionsum;
}
активность:
@Override
public void onRefresh() {
fetchList();
}
private void fetchList() {
swipeRefreshLayout.setRefreshing(true);
databaseHandlerOtherChgs=new DatabaseHandlerOtherChgs(getApplicationContext());
transactionitems=new ArrayList<TransactionSum>();
transactionitems=databaseHandlerOtherChgs.getAllTransactionList(offSet);
adapter = new TransactionListNewAdapter(this, transactionitems);
for(int i=offSet;i<transactionitems.size();i++){
offSet=offSet+i;
}
adapter.notifyDataSetChanged();
swipeRefreshLayout.setRefreshing(false);
}
Я думаю, что есть опечатка ошибка в вашем Sqlite запросе Change «+2+» на «+» 2 «+» –
Хорошо, но как я обновить список с новым набором DATAS в нем –
ПЫТАЮТСЯ set offset 0 при обновлении списка. –