简体   繁体   English

我的自定义列表视图适配器重复最后一项

[英]My custom listview adapter repeats the last item

The code below repeats the last element 4 times. 下面的代码将最后一个元素重复4次。 This ListView is used in a tabbed activity fragment. 选项卡式活动片段中使用了此ListView。 I searched on the internet but found nothing helpful. 我在互联网上搜索,但发现没有任何帮助。 Please help! 请帮忙!

My adapter class: 我的适配器类:

public class MyAdapter extends ArrayAdapter<ElementList> {
public MyAdapter(Context context, ArrayList<ElementList> EventList){
    super(context,0,EventList);
}

@Override
public View getView(final int position, View convertView, ViewGroup parent){


     ViewHolder holder;

    if (convertView == null) {
        convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_adapter, parent, false);

        holder = new ViewHolder();
        holder.id = (TextView) convertView.findViewById(R.id.textView9);
        holder.name = (TextView) convertView.findViewById(R.id.textView6);
        holder.date =(TextView)convertView.findViewById(R.id.textView7);
        holder.time =(TextView)convertView.findViewById(R.id.textView8);

        convertView.setTag( holder );
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    ElementList elementList = getItem(position);

    if(elementList != null) {

        holder.id.setText(ElementList.id);
        holder.name.setText(ElementList.name);
        holder.date.setText(ElementList.date);
        holder.time.setText(ElementList.time);
    }

    return convertView;
}

Usage of that ListView: 该ListView的用法:

ArrayList<ElementList> EventList = new ArrayList<ElementList>();
EventList.add( new ElementList("1","bla1","12/34/45","12:40"));
                    EventList.add( new ElementList("1","bla2","12/34/45","12:40"));
                    EventList.add( new ElementList("1","bla3","12/34/45","12:40"));
                    EventList.add( new ElementList("1","bla4","12/34/45","12:40"));

                MyAdapter adapter = new MyAdapter(getActivity(),EventList);
                ListView myList = (ListView) rootView.findViewById(R.id.listView);
                myList.setAdapter(adapter);

Any suggestions ? 有什么建议么 ? .

I think this 我认为这

    if(elementList != null) {

    holder.id.setText(ElementList.id);
    holder.name.setText(ElementList.name);
    holder.date.setText(ElementList.date);
    holder.time.setText(ElementList.time);
    }  

should be this 应该是这个

    if(elementList != null) {

    holder.id.setText(elementList.id);
    holder.name.setText(elementList.name);
    holder.date.setText(elementList.date);
    holder.time.setText(elementList.time);
}

I don't know if this will help, though. 不过,我不知道这是否会有所帮助。 You can add in some log statements to see what's actually in your arrayList right after you populate it as well as when the adapter is getting ready to read from it. 您可以添加一些日志语句,以在填充数组后以及适配器准备好从中读取时立即查看arrayList中的实际内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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