Приложение падает, когда я запускаю RecyclerView - PullRequest
1 голос
/ 14 марта 2019

Итак, я создаю 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));
}

Однако, когда я запускаю приложение и открываю активность, приложение вылетает. Список в порядке, его значение не равно нулю. Я уже это проверил.

Есть идеи?

1 Ответ

4 голосов
/ 14 марта 2019

В макете XML вы использовали RecycleListView. Но в методе initRecyclerView () вы инициализировали RecylerView. Поэтому используйте RecyclerView вместо RecycleListView. RecyclerView и RecycleListView - это две вещи.

Заменить

<view class="android.support.v7.app.AlertController$RecycleListView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/recyclerViewFavorites">
</view>

С

<android.support.v7.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/recyclerViewFavorites"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...