onBindViewHolder не может использовать viewHolder - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу заполнить такие элементы, как имя пользователя, полное имя, показать видимость follow_btn.Большая проблема в том, что я не могу использовать в onbindviewholder.Подчеркнуто красным.Не могли бы вы мне помочь?

Ошибка: ошибка: не удается найти переменную символа follow_btn.

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {

    viewHolder.follow_btn.setVisibility(View.VISIBLE);

}


@Override
public int getItemCount() {
    return User.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {

    public TextView username_search;
    public TextView fullname_search;
    public CircleImageView profile_pic;
    public Button follow_btn;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);

        username_search = itemView.findViewById(R.id.username_search);
        fullname_search = itemView.findViewById(R.id.fullname);
        profile_pic = itemView.findViewById(R.id.image_profile_pic);
        follow_btn = itemView.findViewById(R.id.follow_btn);

    }
}

1 Ответ

0 голосов
/ 13 февраля 2019

Проблема в наименовании класса.Посмотрите внимательно на параметр метода, это RecyclerView.ViewHolder.Это не ваш собственный класс ViewHolder, и поэтому follow_btn не может быть найден.

Поэтому, чтобы исправить это, вам нужно изменить тип в объявлении класса.Возможно, у вас есть что-то вроде

class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>

, измените его на

class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder>

и исправьте остальную часть кода сейчас.Тогда у вас должен быть правильный метод onBindViewHolder:

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {...}
...