首页 > 解决方案 > 无法解析方法“getEvent()”

问题描述

我正在为我的自定义列表视图制作一个适配器类。但是,当尝试从我的事件类中检索时,它显示“无法解析方法 'getEvent()'”我该如何解决这个问题?它围绕着我试图从中检索的 3 种方法展开。获取事件、获取日期和获取时间。这是我的适配器类:

public class EventsListAdapter extends ArrayAdapter<Events> {

    private Context mContext;
    int mResource;


    public EventsListAdapter(@NonNull Context context,@LayoutRes int resource, @NonNull ArrayList<Events> objects) {
        super(context, resource, objects);

        mContext = context;
        mResource = resource;
    }


    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {

        String event = getItemId(position).getEvent();
        String date = getItemId(position).getDate();
        String time = getItemId(position).getTime();

        Events events = new Events(event,date,time);

        LayoutInflater inflater = LayoutInflater.from(mContext);
        convertView = inflater.inflate(mResource, parent, false);

        TextView tvEvent =  (TextView)convertView.findViewById(R.id.textView11);
        TextView tvDate = (TextView)convertView.findViewById(R.id.textView21);
        TextView tvTime =  (TextView)convertView.findViewById(R.id.textview31);

        tvEvent.setText(event);
        tvDate.setText(date);
        tvTime.setText(time);

        return convertView;
    }
}

这是我的活动课:

public class Events {

    private String event;
    private String date;
    private String time;

    public Events(String event, String date, String time){
        this.event = event;
        this.date = date;
        this.time = time;

    }

    public String getEvent() {
        return event;
    }

    public void setEvent(String event) {
        this.event = event;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }
}

标签: javaandroid

解决方案


问题出在您的getView方法中:

    String event = getItemId(position).getEvent();
    String date = getItemId(position).getDate();
    String time = getItemId(position).getTime();

作为文档,getItemId返回一个long

长 getItemId(int 位置)

获取与列表中指定位置关联的行 id。

这就是您收到错误的原因:您无法调用getEvent.long

您可能正在寻找方法,它通过给它您想要获取的元素的位置getItem返回T( ,在您的情况下):Events

T getItem(int 位置)

获取数据集中与指定位置关联的数据项。

https://developer.android.com/reference/android/widget/ArrayAdapter


推荐阅读