Итак, я создаю RecyclerView в Android Studio, которая отображает изображение и заголовок из списка объектов.
Вот адаптер и вид:
public class FavoritesAdapter extends RecyclerView.Adapter<FavoritesAdapter.ViewHolder>{
private List<RecipeModel> list;
private Context context;
public FavoritesAdapter(List<RecipeModel> list, Context context) {
this.list = list;
this.context = context;
}
public class ViewHolder extends RecyclerView.ViewHolder{
private CircleImageView circleImageView;
private TextView title;
private RelativeLayout relativeLayout;
public ViewHolder(@NonNull View itemView) {
super(itemView);
circleImageView=(CircleImageView) itemView.findViewById(R.id.favoritesCircleImage);
title=(TextView) itemView.findViewById(R.id.favoritesTitle);
relativeLayout=(RelativeLayout) itemView.findViewById(R.id.favorites_layout);
}
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_favorites_list_item, viewGroup, false);
ViewHolder holder=new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
Glide.with(context)
.asBitmap()
.load(list.get(i).getImage_url())
.into(viewHolder.circleImageView);
viewHolder.title.setText(list.get(i).getTitle());
viewHolder.relativeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Clicking on the item
}
});
}
@Override
public int getItemCount() {
return list.size();
}
}
Вот XML для действия:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".FavoritesActivity">
<view class="android.support.v7.app.AlertController$RecycleListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerViewFavorites">
</view>
</RelativeLayout>
И XML для элемента списка:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:id="@+id/favorites_layout">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:id="@+id/favoritesCircleImage"
android:src="@mipmap/ic_launcher"/>
<TextView
android:id="@+id/favoritesTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="110dp"
android:layout_marginTop="25dp"
android:text="DummyText"
android:textColor="#000"
android:textSize="17sp" />
</RelativeLayout>
А вот фрагмент кода реализации в обзоре переработчика:
private void initRecyclerView(){
RecyclerView recyclerView=findViewById(R.id.recyclerViewFavorites);
FavoritesAdapter favoritesAdapter=new FavoritesAdapter(recipeModelList, getApplicationContext());
recyclerView.setAdapter(favoritesAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
}
Однако, когда я запускаю приложение и открываю активность, приложение вылетает. Список в порядке, его значение не равно нулю. Я уже это проверил.
Есть идеи?