onbindViewHolder не принимает переменные держателя представления - PullRequest
0 голосов
/ 11 октября 2018

По какой-то причине держатель bindview не принимает переменные, созданные Viewholder (holder.name и holder.dexription).Я попробовал все, чтобы это исправить, но ничего не помогло. Вот код, если вы могли бы помочь, я был бы признателен.

public class CityAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    private ArrayList<City> cities;
        public CityAdapter(ArrayList<City> cities) {
            this.cities =cities;
        }

    @Override
    public int getItemCount() {
        if (cities != null) {
            return cities.size();
        } else {
            return 0;
        }
    }

    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
       View v =(View) LayoutInflater.from(parent.getContext()).inflate(R.layout.items,parent,false);
       return new ViewHolder(v);
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        City city = cities.get(position);

        holder.name.setText(city.getName());
        holder.description.setText(city.getDescription());
    }
    static class ViewHolder extends RecyclerView.ViewHolder {

        public View view;
        public TextView name;
        public TextView description;
        public ImageView image;

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

            this.name=(TextView) itemView.findViewById(R.id.name);
            this.description=(TextView) itemView.findViewById(R.id.description);
            this.image=(ImageView) itemView.findViewById(R.id.image);
        }
    }    
}

1 Ответ

0 голосов
/ 11 октября 2018

Вы расширяете класс от неправильного

, измените CityAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> на

CityAdapter extends RecyclerView.Adapter<CityAdapter.ViewHolder>

и измените первый аргумент метода "onBindViewHolder" с

RecyclerView.ViewHolder

до

ViewHolder
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...