尝试使用以下代码
public class PlaylistAdapter extends BaseAdapter {
private Context context;
private ArrayList<String> items;
public PlaylistAdapter(Context context, ArrayList<String> items) {
this.context = context;
this.items = filterItems(items);
}
private ArrayList<String> filterItems(ArrayList<String> originalItems) {
ArrayList<String> filteredItems = new ArrayList<>();
for (int i = 2; i <= 5 && i < originalItems.size(); i++) {
filteredItems.add(originalItems.get(i));
}
return filteredItems;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = getLayoutInflater().inflate(R.layout.list_song, parent, false);
CardView cardView = view.findViewById(R.id.cardview);
//use this incase filterItems doesn't works
// if (position < 2 || position > 5) {
// cardView.setVisibility(View.GONE);
// cardView.setPadding(0, 0, 0, 0);
// cardView.setLayoutParams(new LinearLayout.LayoutParams(0, 0));
// }
return view;
}
}
一个名为 filterItems() 的新方法,它获取原始项目列表并返回包含索引 2 到 5(含)的项目的过滤列表。
更多建议参考链接