我有一个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);
}
}
答案 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);
}