2016-10-11 70 views
0

我使用刷卡刷新佈局從本地sqlite加載數據我已經設置極限2和偏移量爲0當列表刷新數據沒有得到刷新我不知道它爲什麼是不工作,任何人都可以幫我重新評估這個。SwipeRefresh佈局不工作在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); 
} 
+0

我認爲有錯字的錯誤在你的sqlite的查詢,更改「+2+」到「+」 2「+」 –

+0

好,但我如何刷新新集DATAS它 –

+0

嘗試列表刷新列表時設置偏移量0。 –

回答

0

你正在創建每次取刷新列表時,一個全新的適配器,但你永遠不會做與此適配器什麼。您必須將其設置在視圖(ListView,「RecyclerView」,無論您正在使用)。

或者,您可以在TransactionListAdapter中添加一個方法,允許您更改其中的數據,並使用此方法代替始終創建新適配器。

public void setTransactionList(ArrayList<TransactionSum> newList) { 
    mList = newList; 
    notifyDataSetChanged(); 
} 
+0

但我必須在我的適配器類或我的活動或數據庫中使用這段代碼 –

+0

@RameshR無論何時加載新列表。您需要爲適配器提供新的列表,否則它如何顯示這些項目? (或者,你需要給'ListView'作爲你創建的新適配器,否則它如何顯示這些項目?) – Karakuri

+0

當我滑過它時我該如何顯示偏移量,以及如何找到那個記錄的總數表 –