繁体   English   中英

无法在Recyclerview中的Android Studio中解析符号“获取”

[英]Cannot resolve symbol 'get' in Android Studio in Recyclerview

onBindViewHolder我得到了错误

'无法解析符号'get'

尽管我已经在Listitem类中创建了公共字符串,但getHeadgetDesc也不起作用。

我的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM