Pradhumn Kanase
Pradhumn Kanase

Reputation: 1

Cannot resolve symbol 'get' in Android Studio in Recyclerview

In the onBindViewHolder I get error

'cannot resolve symbol 'get'

and also the getHead and getDesc are not working though I have created public Strings in the Listitem class.

My android studio version is 2.3.3,
API level is 22 android 5.1,
Build tool version is 25.0.3.

package com.example.kanase.recyclerviewapp;  

import android.content.Context;   
import android.support.v7.widget.RecyclerView;   
import android.view.LayoutInflater;  
import android.view.View;  
import android.view.ViewGroup;  
import android.widget.TextView;  

import java.util.List;

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

private List<Listitem> listItems;
private Context context;

public MyAdapter(List<Listitem> listItems, Context context) {
    this.listItems = listItems;
    this.context = context;
}

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

@Override
public void onBindViewHolder(ViewHolder holder, int position) {

    Listitem listitem =new listItems.get(position);
    holder.textViewHead.setText(listItems.getHead());
    holder.textViewDesc.setText(listItems.getDesc());
}

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

public class ViewHolder extends RecyclerView.ViewHolder{
    public TextView textViewHead;
    public TextView textViewDesc;

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

        textViewHead =(TextView) itemView.findViewById(R.id.textViewHead);
        textViewDesc =(TextView) itemView.findViewById(R.id.textViewDesc);
    }
}

This is Listitem class:

package com.example.kanase.recyclerviewapp;

public class Listitem {
    private String head;
    private String desc;

    public Listitem(String head, String desc) {
        this.head = head;
        this.desc = desc;
    }

    public String getHead() {
        return head;
    }

    public String getDesc() {
        return desc;
    }
}

Upvotes: 0

Views: 1481

Answers (4)

Ratilal Chopda
Ratilal Chopda

Reputation: 4220

You can change your object

Listitem listitem = listItems.get(position);
holder.textViewHead.setText(listitem.getHead());
holder.textViewDesc.setText(listitem.getDesc());

Upvotes: 0

Headcracker
Headcracker

Reputation: 531

Listitem listitem =new listItems.get(position);

Remove the new.

holder.textViewHead.setText(listItems.getHead());
holder.textViewDesc.setText(listItems.getDesc());

This looks like a typo. Use listItem instead of listItems

Upvotes: 0

Sony
Sony

Reputation: 7186

Nothing to do with the android studio version or api level or build tools version. You are calling getter on the list itself, not on the individual item in the list. And Listitem listitem =new listItems.get(position); you don't have to use new keyword to get an item from the list

 @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Listitem listitem =new listItems.get(position);
        holder.textViewHead.setText(listItems.getHead());
        holder.textViewDesc.setText(listItems.getDesc());

    }

Change onBindViewHolder to,

@Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Listitem listitem = listItems.get(position);
        holder.textViewHead.setText(listitem.getHead());
        holder.textViewDesc.setText(listitem.getDesc());

    }

Upvotes: 2

Navneet Krishna
Navneet Krishna

Reputation: 5017

try changing

 Listitem listitem =new listItems.get(position);
holder.textViewHead.setText(listItems.getHead());
holder.textViewDesc.setText(listItems.getDesc());

to

holder.textViewHead.setText(listItems.get(position).getHead());
holder.textViewDesc.setText(listItems.get(position).getDesc());

Upvotes: 0

Related Questions