Android 滚动时,Listview项目重复

Android 滚动时,Listview项目重复,android,listview,android-listview,baseadapter,custom-adapter,Android,Listview,Android Listview,Baseadapter,Custom Adapter,我对列表视图项有问题。在这个列表视图中,我将创建一个线性布局,该布局将添加到我的原始布局中。第一次,数据非常清晰,但当我滚动它时,数据没有匹配。有谁能帮我摆脱这个困境吗?我使用了扩展基本适配器 代码 @Override public View getView(final int position, View convertView, ViewGroup parent) { View view = convertView;

我对列表视图项有问题。在这个列表视图中,我将创建一个线性布局,该布局将添加到我的原始布局中。第一次,数据非常清晰,但当我滚动它时,数据没有匹配。有谁能帮我摆脱这个困境吗?我使用了扩展基本适配器

代码

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

            View view = convertView;
            final ViewHolder holder;

            if (convertView == null) {
                view = ((Activity) context).getLayoutInflater().inflate(R.layout.wishlist_items, parent, false);
                holder = new ViewHolder();
                holder.wishlistName = (TextView) view.findViewById(R.id.wishlist_name);
                holder.wishlistEmail = (TextView) view.findViewById(R.id.wishlist_email);
                holder.wishlistRelation = (TextView) view.findViewById(R.id.wishlist_relation);
                holder.wishGiftAdvisorText = (TextView) view.findViewById(R.id.gift_advisor_text);
                //holder.advisorListview = (ListView)  view.findViewById(R.id.listView);
                holder.inviteAdvisor = (ImageButton) view.findViewById(R.id.invite_advisor);
                holder.advisorContainer = (LinearLayout) view.findViewById(R.id.advisor_container);
                holder.editButton = (ImageButton) view.findViewById(R.id.editButton);
                holder.deleteButton = (ImageButton) view.findViewById(R.id.deleteButton);

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

        //  holder.advisorContainer.removeAllViews();
            holder.wishlistName.setText(names[position]);
            if(!emails[position].equals("0")) {
                holder.wishlistEmail.setText(emails[position]);
            } else {
                holder.wishlistEmail.setText("");
            }
            holder.wishlistRelation.setText(relationships[position]);
            holder.wishGiftAdvisorText.setText(getResources().getString( R.string.wishlist_getadvisor)+" "+names[position]+"'s "+getResources().getString( R.string.wishlist_title1) );

            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            holder.advisorContainer.setLayoutParams(lp);


            if(advisors[position].contains("[")) { 
                try {
                    array = new JSONArray(advisors[position]);
                    System.out.println(array.toString(2));


                    // TODO Auto-generated method stub

                    // holder.advisorContainer.removeAllViews(); 
                    if(array!= null) {
                        for (int i = 0; i < array.length(); i++) {
                            JSONObject c = null;
                            try {
                                c = array.getJSONObject(i);
                                if( !advisorList.contains(c.getString("advisor_id"))) {
                                    advisorList.add(c.getString("advisor_id"));

                                    LinearLayout linearLayout_837 = new LinearLayout(WishList.this);
                                    linearLayout_837.setLayoutParams(new LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
                                    linearLayout_837.setBackgroundColor(0xFFFFFFFF);
                                    linearLayout_837.setOrientation(LinearLayout.HORIZONTAL);
                                    linearLayout_837.setPadding(0, 5, 0, 0);


                                    LinearLayout linearLayout_746 = new LinearLayout(WishList.this);
                                    linearLayout_746.setOrientation(LinearLayout.HORIZONTAL);
                                    LinearLayout.LayoutParams layout_788 = new LinearLayout.LayoutParams(0, android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 0.73f);
                                    layout_788.leftMargin = 10;
                                    linearLayout_746.setWeightSum(1);
                                    linearLayout_746.setPadding(10, 0, 0, 0);
                                    linearLayout_746.setLayoutParams(layout_788);

                                    final TextView advisor_name_text = new TextView(WishList.this);
                                    advisor_name_text.setEllipsize(TruncateAt.END);
                                    advisor_name_text.setMaxLines(2);
                                    advisor_name_text.setText(c.getString("name"));
                                    advisor_name_text.setTextColor(getResources().getColor(R.color.Black));
                                    LinearLayout.LayoutParams layout_527 = new LinearLayout.LayoutParams(
                                            0, android.view.ViewGroup.LayoutParams.WRAP_CONTENT,0.4f);
                                    layout_527.gravity = Gravity.CENTER;
                                    advisor_name_text.setLayoutParams(layout_527);
                                    linearLayout_746.addView(advisor_name_text,layout_527);


                                    TextView advisor_email_text = new TextView(WishList.this);
                                    //advisor_email_text.setId(R.id.advisor_email_text);
                                    advisor_email_text.setEllipsize(TruncateAt.END);
                                    advisor_email_text.setMaxLines(2);
                                    advisor_email_text.setText(c.getString("email"));
                                    //advisor_email_text.setTypeface(tf);
                                    advisor_email_text.setTextColor(getResources().getColor(R.color.Black));
                                    LinearLayout.LayoutParams layout_908 = new LinearLayout.LayoutParams(
                                            0, LayoutParams.WRAP_CONTENT,0.6f);
                                    advisor_email_text.setLayoutParams(layout_908);
                                    linearLayout_746.addView(advisor_email_text,layout_908);


                                    LinearLayout linearLayout_739 = new LinearLayout(WishList.this);
                                    linearLayout_739.setOrientation(LinearLayout.HORIZONTAL);
                                    LinearLayout.LayoutParams layout_778 = new LinearLayout.LayoutParams(
                                            0, android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 0.30f);
                                    linearLayout_739.setLayoutParams(layout_778);

                                    RelativeLayout relativeLayout_168 = new RelativeLayout(WishList.this);
                                    RelativeLayout.LayoutParams layout_697 = new RelativeLayout.LayoutParams(
                                            android.view.ViewGroup.LayoutParams.FILL_PARENT
                                            , android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
                                    relativeLayout_168.setLayoutParams(layout_697);


                                    final ImageButton deleteButton = new ImageButton(WishList.this);
                                    deleteButton.setId(Integer.parseInt(c.getString("advisor_id")));
                                    deleteButton.setBackgroundResource(R.drawable.wishlistremoveicon);
                                    deleteButton.setContentDescription(getResources().getString(R.string.app_name));
                                    RelativeLayout.LayoutParams layout_439 = new RelativeLayout.LayoutParams(
                                            android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
                                    //layout_439.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
                                    layout_439.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
                                    layout_439.rightMargin = 10;
                                    deleteButton.setLayoutParams(layout_439);

                                    TextView status_text = new TextView(WishList.this);
                                    status_text.setText(c.getString("status"));
                                    if(c.getString("status").equalsIgnoreCase("accepted"))
                                    {
                                        status_text.setTextColor(Color.GREEN);
                                    }
                                    else if(c.getString("status").equalsIgnoreCase("pending"))
                                    {
                                        status_text.setTextColor(getResources().getColor(R.color.Orange));
                                    }
                                    else 
                                    {
                                        status_text.setTextColor(getResources().getColor(R.color.Red));
                                    }
                                    RelativeLayout.LayoutParams layout_315 = new RelativeLayout.LayoutParams(
                                            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                                    layout_315.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
                                    layout_315.addRule(RelativeLayout.LEFT_OF, deleteButton.getId());
                                    layout_315.rightMargin = 5;
                                    status_text.setLayoutParams(layout_315);

                                    relativeLayout_168.addView(deleteButton,layout_439);
                                    relativeLayout_168.addView(status_text,layout_315);
                                    linearLayout_739.addView(relativeLayout_168);

                                    linearLayout_837.addView(linearLayout_746);
                                    linearLayout_837.addView(linearLayout_739);

                                    holder.advisorContainer.addView(linearLayout_837);

                                    deleteButton.setOnClickListener(new View.OnClickListener() {

                                        @Override
                                        public void onClick(View arg0) {
                                        // Click Operation
                                        }
                                    });
                                }
                            } catch (JSONException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }

                        } 

                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            } else {

            }



            return view;
        }
@覆盖
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图=转换视图;
最终持票人;
if(convertView==null){
视图=((活动)上下文).GetLayoutFlater().inflate(R.layout.wishlist_项,父项,false);
holder=新的ViewHolder();
holder.wishlistName=(TextView)view.findViewById(R.id.wishlist_name);
holder.wishlistEmail=(TextView)view.findViewById(R.id.wishlist_email);
holder.wishlistRelation=(TextView)view.findViewById(R.id.wishlist_关系);
holder.wishGiftAdvisorText=(TextView)view.findViewById(R.id.gift\u advisor\u text);
//holder.advisorListview=(ListView)view.findViewById(R.id.ListView);
holder.inviteAdvisor=(ImageButton)view.findViewById(R.id.invite\u advisor);
holder.advisorContainer=(LinearLayout)view.findViewById(R.id.advisor\u容器);
holder.editButton=(ImageButton)view.findViewById(R.id.editButton);
holder.deleteButton=(ImageButton)view.findViewById(R.id.deleteButton);
视图.设置标签(支架);
}否则{
holder=(ViewHolder)view.getTag();
}
//holder.advisorContainer.removeAllViews();
holder.wishlistName.setText(名称[位置]);
如果(!email[position].equals(“0”)){
holder.wishlistEmail.setText(电子邮件[位置]);
}否则{
holder.wishlistEmail.setText(“”);
}
holder.wishlistRelation.setText(关系[位置]);
holder.wishGiftAdvisorText.setText(getResources().getString(R.string.wishlist_getadvisor)+“+names[position]+”s“+getResources().getString(R.string.wishlist_title1));
LinearLayout.LayoutParams lp=新的LinearLayout.LayoutParams(
LayoutParams.WRAP_内容,LayoutParams.WRAP_内容);
holder.advisorContainer.setLayoutParams(lp);
if(advisors[position]。包含(“[”){
试一试{
数组=新的JSONArray(顾问[职位]);
System.out.println(array.toString(2));
//TODO自动生成的方法存根
//holder.advisorContainer.removeAllViews();
if(数组!=null){
对于(int i=0;i