Reputation: 1
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
Reputation: 4220
You can change your object
Listitem listitem = listItems.get(position);
holder.textViewHead.setText(listitem.getHead());
holder.textViewDesc.setText(listitem.getDesc());
Upvotes: 0
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
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
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