[英]Android Studio: “cannot resolve symbol 'recyclerView'” but the RecyclerView symbol does work
[英]Cannot resolve symbol 'get' in Android Studio in Recyclerview
在onBindViewHolder
我得到了错误
'无法解析符号'get'
尽管我已经在Listitem
类中创建了公共字符串,但getHead
和getDesc
也不起作用。
我的android studio版本是2.3.3,
API等级为22 android 5.1,
生成工具版本为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);
}
}
这是Listitem类别:
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;
}
}
与android studio版本或api级或构建工具版本无关。 您是在列表本身而不是列表中的单个项目上调用getter。 和Listitem listitem =new listItems.get(position);
您不必使用new
关键字即可从列表中获取项目
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Listitem listitem =new listItems.get(position);
holder.textViewHead.setText(listItems.getHead());
holder.textViewDesc.setText(listItems.getDesc());
}
将onBindViewHolder
更改为
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Listitem listitem = listItems.get(position);
holder.textViewHead.setText(listitem.getHead());
holder.textViewDesc.setText(listitem.getDesc());
}
尝试改变
Listitem listitem =new listItems.get(position);
holder.textViewHead.setText(listItems.getHead());
holder.textViewDesc.setText(listItems.getDesc());
至
holder.textViewHead.setText(listItems.get(position).getHead());
holder.textViewDesc.setText(listItems.get(position).getDesc());
您可以更改对象
Listitem listitem = listItems.get(position);
holder.textViewHead.setText(listitem.getHead());
holder.textViewDesc.setText(listitem.getDesc());
Listitem listitem =new listItems.get(position);
删除new
。
holder.textViewHead.setText(listItems.getHead());
holder.textViewDesc.setText(listItems.getDesc());
这看起来像错字。 使用listItem
而不是listItems
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.