Всякий раз, когда мне нужно реализовать пользовательский ListView
или GridView
.Я всегда использую класс BaseAdapter
следующим образом:
public class CustomFlowerGridViewAdapter extends BaseAdapter {
private HashMap<String, String> mFlowerFeed = new HashMap<>();
private Context mContext;
static LayoutInflater mFlowerInflater = null;
CustomFlowerGridViewAdapter(Context context, ArrayList<HashMap<String, String>> data) {
super();
this.mContext = context;
MainActivity.flowerArrayFeedList = data;
mFlowerInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return MainActivity.flowerArrayFeedList.size();
}
@Override
public Object getItem(int i) {
return MainActivity.flowerArrayFeedList.size();
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
final ViewHolder holder;
if(view == null){
view = mFlowerInflater.inflate(R.layout.flower_grid_row, viewGroup, false);
holder = new ViewHolder();
holder.name = (TextView) view.findViewById(R.id.mainGridName);
view.setTag(holder);
mFlowerFeed = MainActivity.flowerArrayFeedList.get(i);
mFlowerImage = MainActivity.flowerArrayImageList.get(i);
}
else{
holder = (ViewHolder) view.getTag();
mFlowerFeed = MainActivity.flowerArrayFeedList.get(i);
mFlowerImage = MainActivity.flowerArrayImageList.get(i);
}
holder.name.setText(mFlowerFeed.get("name"));
return view;
}
private class ViewHolder {
TextView name
}
}
Однако сейчас я пытаюсь реализовать Horizontal ListView
.Проведя некоторые исследования, я обнаружил, что «правильный» способ реализации горизонтального ListView - это использование RecyclerView
.Это то, что у меня есть в моем MainActivity
CustomFlowerGridViewAdapter customFlowerGridViewAdapter = new CustomFlowerGridViewAdapter(MainActivity.this, flowerArrayFeedList);
flowersGrid.setAdapter(customFlowerGridViewAdapter);
Проблема заключается в том, что я пытаюсь установить адаптер.
Как мне установить BaseAdapter для RecyclerView?