如何从列表中只获得6项?

时间:2017-05-22 05:01:46

标签: android list loops

我有一个List<Restaurant> restaurants(11项)。我想从11个项目中只获得6个项目以在gridview中显示。现在,我循环所有size()。如何循环只获得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);
    }

}

6 个答案:

答案 0 :(得分:2)

最好的方式,

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

答案 1 :(得分: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);

答案 2 :(得分: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,则不会显示错误。

答案 3 :(得分:0)

ItemAdapter getCount()getItemCount()

中尝试此操作
@Override
    public int getItemCount() {
        if(lotteryList.size()>6){
           return 6; 
        }
        else{
           return lotteryList.size();
        }
    }

答案 4 :(得分:0)

如果您的列表已经有11条记录,则无需循环。在适配器构造函数中输入第三个参数,并将其设置为适配器中的计数返回值为6.

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

答案 5 :(得分: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);


    }