2017-02-09 19 views
0

我試圖在同一個視圖上查看列表元素,但每次只能查看6個。首先調用一個遊標,然後用所有的項目填充一個數組列表。ArrayList elemsts在同一個視圖上均勻查看

if (cursor.moveToFirst()) 
     { 
      try { 
       do { 
        items.add(ChecklistItem.fromCursor(cursor)); 
       } while (cursor.moveToNext()); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

然後,該列表被賦予適配器,該適配器依次處理當前視圖上的項目。

if (items.size() > 0) { 
      if (mAdapter == null) 
      { 
       mAdapter = new RecipeDetailAdapter(this, items, this); 
       mRecyclerView.setAdapter(mAdapter); 
      } 
      else 
      { 
       mAdapter.updateItems(items); 
      } 
     } 

在視圖上,有一個下一個按鈕,點擊後會將您帶到另一個視圖。

public void onClick(View view) { 
     switch (view.getId()) { 
      case R.id.next_button: 
       startActivity(new Intent(RecipeDetailActivity.this, RecipeTasksActivity.class) 
       .putExtra(RecipeTasksActivity.RECIPE_KEY, mRecipe.getRecipeId())); 
       finish(); 
       break; 
    } 
} 

目前視圖顯示任何項目在列表中,可能是10,30,50,等

我所試圖實現的是,假設列表中有18個項目,查看該列表中的前6個項目,然後當點擊按鈕「next」時,查看其他6,然後當下一個被點擊時,查看其餘6個。請記住,我需要檢查列表是否有6個項目或更少,如果更少,查看所有這些,如果更多,將它們分散在同一視圖的兩個實例上。

關於如何解決這個問題的任何建議?

回答

0

是的,你可以在查詢中使用偏移& LIMIT做到這一點。

db.rawQuery("SELECT * FROM " + TABLE_NAME + " ORDER BY " + ORDER_BY + " LIMIT 0, 20", NULL); 

注意:在0以上是您的OFFSET & 20是您的限制。在你的情況LIMIT將是6.你可以維持偏移k * Limit其中K將您的傳呼號碼。

+0

是的。這可能會起作用,以防我只想查看前6項。但是我怎樣才能跟蹤我選擇的內容和剩下的選擇? – HShbib

+0

定義一個名爲'page'的var,並在接下來按下時將其加1,當按下previous時將其減1。 –