【问题标题】:Android ArrayAdapter getItem() incompatible types?Android ArrayAdapter getItem() 不兼容的类型?
【发布时间】:2018-01-31 15:25:26
【问题描述】:

我很难让我的 ArrayAdapter 正常工作 - 以前使用自定义 ArrayAdapter 没有问题,但这次我不确定发生了什么。

我正在尝试使用适配器创建 ListView,该适配器将显示每个 WeekViewEvent 对象的两个字符串(mName、mLocation):

public class WeekViewEvent implements Serializable{
private long mId;
private Calendar mStartTime;
private Calendar mEndTime;
private String mName;
private String mLocation;
private int mColor;
private boolean mAllDay;
private Shader mShader;
//construcotrs, setters, getters

阵列适配器:

  public class TEventAdapter extends ArrayAdapter<Testowa> {

    public TEventAdapter (Context context, ArrayList<Testowa> testowyeventarray){
        super(context, 0, testowyeventarray);}

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        View pojedynczyItemView = convertView;
        if(pojedynczyItemView==null){
            pojedynczyItemView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false);
        }

        WeekViewEvent wvevent = getItem(position);

        TextView tv1 = (TextView) pojedynczyItemView.findViewById(R.id.tv_lv1);
        tv1.setText(wvevent.getName());
        TextView tv2 = (TextView) pojedynczyItemView.findViewById(R.id.tv_lv2);
        tv2.setText(wvevent.getLocation());

        return pojedynczyItemView;
    }
}

但 AndroidStudio 突出显示了我正在获取对象位置的部分:WeekViewEvent wvevent = getItem(position); 为不兼容类型(下图):

我卡住了:/您知道我的代码有什么问题吗? 提前谢谢您!

【问题讨论】:

  • 是的,这是您将得到的 Testowa 而不是 WeekViewEvent,因为您有一个 Testowa 类型的适配器
  • 天哪,我的天哪!我忽略了那个 :) 谢谢 vikas kumar!

标签: android arraylist android-arrayadapter custom-arrayadapter


【解决方案1】:

这应该可以工作

Testowa 更改为 -> WeekViewEvent

public TEventAdapter(上下文上下文,ArrayListTestowa>testowyeventarray)

公共类 TEventAdapter 扩展了 ArrayAdapterTestowa>

public class TEventAdapter extends ArrayAdapter<WeekViewEvent> {

    public TEventAdapter (Context context, ArrayList<WeekViewEvent> weekVieweEvent){
        super(context, 0, weekVieweEvent);}

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        View pojedynczyItemView = convertView;
        if(pojedynczyItemView==null){
            pojedynczyItemView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false);
        }

        WeekViewEvent wvevent = getItem(position);

        TextView tv1 = (TextView) pojedynczyItemView.findViewById(R.id.tv_lv1);
        tv1.setText(wvevent.getName());
        TextView tv2 = (TextView) pojedynczyItemView.findViewById(R.id.tv_lv2);
        tv2.setText(wvevent.getLocation());

        return pojedynczyItemView;
    }
}

【讨论】:

  • Al Esa Assadi, vikas kunmar - 谢谢你们的帮助!祝您有美好的一天(或夜晚)! :)
猜你喜欢
  • 2021-11-26
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 2015-08-11
  • 2011-07-07
  • 2015-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多