2017-05-22 53 views
-3

我有一個List<Restaurant> restaurants(11件物品)。我想從11個項目中只獲取6個項目以顯示在gridview中。現在,我循環所有大小()。如何循環才能獲得6件物品。如何從列表中只獲得6個項目?

if (restaurants != null && restaurants.size() > 0) { 
    for (int i = 1; i < restaurants.size(); i++) { 
     adapter = new ItemAdapter(MainActivity.this, restaurants); 
     grid_view.setAdapter(adapter); 
    } 

} 
+0

變化restaurants.size()至6 –

+0

變化I

回答

2

的最佳方式,

@Override 
    public int getItemCount() { 
     if(lotteryList.size()>6){ 
      return 6; 
     } 
     else{ 
      return lotteryList.size(); 
     } 
    } 
0
ArrayList<String> sixItem = new ArrayList<>; 
if (restaurants.size() >= 6) { // restaurants.size() (11 items) 
    for (int i = 1; i < 7; i++) { // 11 items 
     sixItem.add(i-1);  
} 

} else { 
    for (int i = 1; i < restaurants.size(); i++) { 
     sixItem.add(i-1); 
    } 
} 
adapter = new ItemAdapter(MainActivity.this, sixItem); 
grid_view.setAdapter(adapter); 

如果restaurants.size()是小於6,就不會顯示錯誤。

+0

它不顯示11項中的6項。我們需要在適配器中設置「i」嗎? –

+0

@ Tr.Buu您是否只想顯示所有時間點的前6項? – Sanoop

+0

而不是餐廳應用restaurants.get(i)或者如果它是陣列餐廳[i]。迭代器我應該從0到6. –

1

試試看看這個代碼。

List<Restaurant> restaurantsTemp=new ArrayList(); 
for (int i = 0; i < 6; i++) { 
restaurantsTemp.add(restaurants.get(i)); 
} 
adapter = new ItemAdapter(MainActivity.this, restaurantsTemp); 
grid_view.setAdapter(adapter); 
0

試試這個在您的ItemAdaptergetCount()getItemCount()

@Override 
    public int getItemCount() { 
     if(lotteryList.size()>6){ 
      return 6; 
     } 
     else{ 
      return lotteryList.size(); 
     } 
    } 
0

無需循環,如果你的名單已經在適配器建築工11 records.Pass第三個參數,並將其設置成在適配器計回報6 。

adapter = new ItemAdapter(MainActivity.this, restaurants,6); 
grid_view.setAdapter(adapter); 
0

您好,您需要使用此代碼,您也不需要在循環中設置適配器。

if (restaurants != null && restaurants.size() > 0) { // restaurants.size() (11 items) 
    List<Restaurant> modifiedList=new ArrayList(); 
     for (int i = 1; i < restaurants.size(); i++) { // 11 items 

      modifiedList.add(restaurants.get(i-1)); 
      if(modifiedList.size()==6){ 
      break; 
      } 
     } 
     adapter = new ItemAdapter(MainActivity.this, modifiedList); 
     grid_view.setAdapter(adapter); 


    } 
相關問題