Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 滚动listview时如何防止在listview中添加新的view对象_Android_Listview - Fatal编程技术网

Android 滚动listview时如何防止在listview中添加新的view对象

Android 滚动listview时如何防止在listview中添加新的view对象,android,listview,Android,Listview,我有一个linearLayout内部列表视图,在linearLayout内部,我必须添加ImageView和TextView,并在适配器中设置我想要显示的数据。 在列表视图滚动之前,它可以正常工作。 当我滚动listView时,每次滚动时对象视图都会增加。 这是我的密码 if (convertView == null) { LayoutInflater inflater = (LayoutInflater) context .getSyst

我有一个linearLayout内部列表视图,在linearLayout内部,我必须添加ImageView和TextView,并在适配器中设置我想要显示的数据。 在列表视图滚动之前,它可以正常工作。 当我滚动listView时,每次滚动时对象视图都会增加。 这是我的密码

    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.chattemplate, null);
    }
    LinearLayout lin = (LinearLayout) convertView.findViewById(R.id.linearChat);
    final ImageView img1 = new ImageView(context);
    final TextView tv1 = new TextView(context);
        tv1.setText(chat.getPesan());
        tv1.setBackgroundResource(R.drawable.rounded_corner1);
        tv1.setPadding(10,10,10,10);
        tv1.setTextColor(context.getResources().getColor(R.color.white));
        tv1.setMaxWidth(250);
        img1.setImageDrawable(context.getResources().getDrawable(R.drawable.cservice));

        lin.addView(img1);
        lin.addView(tv1);

    return convertView;

您只需删除视图,然后添加新视图

LinearLayout lin = (LinearLayout) convertView.findViewById(R.id.linearChat);
lin.removeAllViews();// here we remove all views before adding new views,
    final ImageView img1 = new ImageView(context);
    final TextView tv1 = new TextView(context);
        tv1.setText(chat.getPesan());
        tv1.setBackgroundResource(R.drawable.rounded_corner1);
        tv1.setPadding(10,10,10,10);
        tv1.setTextColor(context.getResources().getColor(R.color.white));
        tv1.setMaxWidth(250);
        img1.setImageDrawable(context.getResources().getDrawable(R.drawable.cservice));

        lin.addView(img1);
        lin.addView(tv1);

作为旁注,每次调用getView方法时,您都要创建一个新的ImageView和TextView。如果您的ListView包含超过7项,那么这将是非常低效的,而且从我所看到的情况来看,这甚至可能不是必需的。此外,考虑使用RealReVIEW作为ListVIEW应该被认为是不赞成的。