0

我正在做android应用程序,我只是在做一个listView,我希望我的rowview在左边有一个ImageView,在中间行有一个NAme,在右边有5个图像,但我的问题是图像2、3、4、5不是固定图像并取决于是否出现的行,但对我来说,它从不查看图像 2、3、4、5,只有 1 个(对不起,数字 1、2、3、4、5 是图标)。

我想要这个,对于这个数字,2、3、4、5 是可选视图。

在此处输入图像描述

这是我的 row.xml:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" android:id="@+id/row_def"
    android:orientation="horizontal" android:layout_width="fill_parent">

    <ImageView
        android:id="@+id/profile_picture"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="6dip" />

    <TextView 
        android:id="@+id/Nombre_Amigo" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_toRightOf="@id/profile_picture"
        android:gravity="center_vertical"  />

     <ImageView
        android:id="@+id/proveedor_icon"
        android:layout_width="16dip"
        android:layout_height="16dip"    
        android:layout_marginRight="6dip"
        android:layout_alignParentRight="true"   
        android:layout_alignParentBottom="true"
         />

      <ImageView
        android:id="@+id/proveedor_icon2"
        android:layout_width="16dip"
        android:layout_height="16dip"
        android:layout_above="@+id/proveedor_icon" 
        android:layout_marginRight="6dip"
        android:layout_alignParentRight="true"  />

       <ImageView
        android:id="@+id/proveedor_icon3"
        android:layout_width="16dip"
        android:layout_height="16dip"                       
        android:layout_toLeftOf="@+id/proveedor_icon"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="3dip"/>

        <ImageView
        android:id="@+id/proveedor_icon4"
        android:layout_width="16dip"
        android:layout_height="16dip"              
        android:layout_marginRight="3dip"    
        android:layout_toLeftOf="@+id/proveedor_icon2"
        android:layout_above="@+id/proveedor_icon3"
        />          


         <ImageView
        android:id="@+id/proveedor_icon5"
        android:layout_width="16dip"
        android:layout_height="16dip"        
        android:layout_marginRight="3dip"  
        android:layout_alignParentBottom="true"         
        android:layout_toLeftOf="@+id/proveedor_icon4" />

</RelativeLayout>

这是我的适配器:

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

      View rowView = convertView;
    if (convertView == null ){//&& !myList.get(position).getIdTeneaPhoneAmigo().equals("NO")) { 

      LayoutInflater inflater = LayoutInflater.from(context);//context.getLayoutInflater();  
      rowView = inflater.inflate(R.layout.row_def, null);            
      ViewHolder viewHolder = new ViewHolder();
      viewHolder.text = (TextView) rowView.findViewById(R.id.Nombre_Amigo);
      viewHolder.image = (ImageView) rowView.findViewById(R.id.profile_picture);
      viewHolder.image.setAdjustViewBounds(true);
      viewHolder.image.setMaxHeight(48);
      viewHolder.image.setMaxWidth(48);
      viewHolder.icon_proveedor = (ImageView) rowView.findViewById(R.id.proveedor_icon);
      viewHolder.icon_proveedor2 = (ImageView) rowView.findViewById(R.id.proveedor_icon2);
      viewHolder.icon_proveedor3 = (ImageView) rowView.findViewById(R.id.proveedor_icon3);
      viewHolder.icon_proveedor4 = (ImageView) rowView.findViewById(R.id.proveedor_icon4);
      viewHolder.icon_proveedor5 = (ImageView) rowView.findViewById(R.id.proveedor_icon5);
      rowView.setTag(viewHolder);

    }

    Log.d("MyPerformanceArrayAdapter","getView, fora del if (convertView == null)");
    ViewHolder holder = (ViewHolder) rowView.getTag();



        Bitmap bitmap = myList.get(position).getPicSquare();
        Log.d("MyPerformanceArrayAdapter","Bitmap: "+bitmap);
        holder.image.setImageBitmap(bitmap);
        String nombre = myList.get(position).getNombreAmigo();
        holder.text.setText(nombre);
        Log.d("MyPerformanceArrayAdapter","name: "+nombre);
        int idRow = myList.get(position).getIdRowAmigo();
        int prov = myList.get(position).getIDRedsocial();

        if (prov == 0){
            holder.icon_proveedor.setImageResource(R.drawable.facebook_icon);
        }

        if (prov == 1){
            holder.icon_proveedor.setImageResource(R.drawable.agenda);
        }

        if(prov == 2){
            holder.icon_proveedor.setImageResource(R.drawable.linkedin_icon);
        }
        if(prov == 3){
            holder.icon_proveedor.setImageResource(R.drawable.twitter_icon);
        }
        if (prov == 4){
            holder.icon_proveedor.setImageResource(R.drawable.google_icon);
        }

        //////FUSION

        /////// FUSION DE SOLO 2 CONTACTOS
        if (prov == 5){
            Log.d("Adapter"," Fusion idRow: "+idRow);
            db = new DatabaseHandler(context);
            database = db.getReadableDatabase();    
            List<Integer> lista_prov = new ArrayList<Integer>();

            lista_prov = db.ObetenrProveedorSocial(idRow);
            Log.d("Adapter"," lista_prov: "+lista_prov);
            int i=0;
            for(int proveedor : lista_prov){

                    if(i==0){
                        if (proveedor == 0){
                            holder.icon_proveedor.setImageResource(R.drawable.facebook_icon);
                        }                           
                        if (proveedor == 1){
                            holder.icon_proveedor.setImageResource(R.drawable.agenda);
                        }       
                        if(proveedor == 2){
                            holder.icon_proveedor.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor.setImageResource(R.drawable.google_icon);
                        }
                        Log.d("ADAPTER","i: "+i);
                        Log.d("ADAPTER","proveedor: "+proveedor);
                    }

                    if(i==1){
                        if (proveedor == 0){
                            holder.icon_proveedor2.setImageResource(R.drawable.facebook_icon);
                        }
                        if (proveedor == 1){
                            holder.icon_proveedor2.setImageResource(R.drawable.agenda);
                        }       
                        if(proveedor == 2){
                            holder.icon_proveedor2.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor2.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor2.setImageResource(R.drawable.google_icon);
                        }
                        Log.d("ADAPTER","i: "+i);
                        Log.d("ADAPTER","proveedor: "+proveedor);
                    }

                    i++;
                    Log.d("ADAPTER FINAL","i: "+i);
            }

        }

    /////// FUSION DE SOLO 3 CONTACTOS
        if (prov == 6){
            List<Integer> lista_prov = db.ObetenrProveedorSocial(idRow);
            int i=0;
            for(int proveedor : lista_prov){

                    if(i==0){
                        if (proveedor == 0){
                            holder.icon_proveedor.setImageResource(R.drawable.facebook_icon);
                        }                           
                        if (proveedor == 1){
                            holder.icon_proveedor.setImageResource(R.drawable.agenda);
                        }       
                        if(proveedor == 2){
                            holder.icon_proveedor.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor.setImageResource(R.drawable.google_icon);
                        }

                    }

                    if(i==1){
                        if (proveedor == 0){
                            holder.icon_proveedor2.setImageResource(R.drawable.facebook_icon);
                        }                           
                        if (proveedor == 1){
                            holder.icon_proveedor2.setImageResource(R.drawable.agenda);
                        }       
                        if(proveedor == 2){
                            holder.icon_proveedor2.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor2.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor2.setImageResource(R.drawable.google_icon);
                        }

                    }

                    if(i==2){
                        if (proveedor == 0){
                            holder.icon_proveedor3.setImageResource(R.drawable.facebook_icon);
                        }                           
                        if (proveedor == 1){
                            holder.icon_proveedor3.setImageResource(R.drawable.agenda);
                        }       
                        if(proveedor == 2){
                            holder.icon_proveedor3.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor3.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor3.setImageResource(R.drawable.google_icon);
                        }

                    }

                    i++;
            }
        }

        /////// FUSION DE SOLO 4 CONTACTOS
        if (prov == 7){
            List<Integer> lista_prov = db.ObetenrProveedorSocial(idRow);
            int i=0;
            for(int proveedor : lista_prov){

                    if(i==0){
                        if (proveedor == 0){
                            holder.icon_proveedor.setImageResource(R.drawable.facebook_icon);
                        }                           
                        if (proveedor == 1){
                            holder.icon_proveedor.setImageResource(R.drawable.agenda);
                        }       
                        if(proveedor == 2){
                            holder.icon_proveedor.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor.setImageResource(R.drawable.google_icon);
                        }

                    }

                    if(i==1){
                        if (proveedor == 0){
                            holder.icon_proveedor2.setImageResource(R.drawable.facebook_icon);
                        }                           
                        if (proveedor == 1){
                            holder.icon_proveedor2.setImageResource(R.drawable.agenda);
                        }       
                        if(proveedor == 2){
                            holder.icon_proveedor2.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor2.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor2.setImageResource(R.drawable.google_icon);
                        }

                    }

                    if(i==2){
                        if (proveedor == 0){
                            holder.icon_proveedor3.setImageResource(R.drawable.facebook_icon);
                        }                           
                        if (proveedor == 1){
                            holder.icon_proveedor3.setImageResource(R.drawable.agenda);
                        }       
                        if(proveedor == 2){
                            holder.icon_proveedor3.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor3.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor3.setImageResource(R.drawable.google_icon);
                        }

                    }

                    if(i==3){
                        if (proveedor == 0){
                            holder.icon_proveedor4.setImageResource(R.drawable.facebook_icon);
                        }                           
                        if (proveedor == 1){
                            holder.icon_proveedor4.setImageResource(R.drawable.agenda);
                        }
                        if(proveedor == 2){
                            holder.icon_proveedor4.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor4.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor4.setImageResource(R.drawable.google_icon);
                        }

                    }

                    i++;
            }

        }

        /////// FUSION DE SOLO 5 CONTACTOS
        if (prov == 8){
            List<Integer> lista_prov = db.ObetenrProveedorSocial(idRow);
            int i=0;
            for(int proveedor : lista_prov){

                    if(i==0){
                        if (proveedor == 0){
                            holder.icon_proveedor.setImageResource(R.drawable.facebook_icon);
                        }
                        if (proveedor == 1){
                            holder.icon_proveedor.setImageResource(R.drawable.agenda);
                        }
                        if(proveedor == 2){
                            holder.icon_proveedor.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor.setImageResource(R.drawable.google_icon);
                        }

                    }

                    if(i==1){
                        if (proveedor == 0){
                            holder.icon_proveedor2.setImageResource(R.drawable.facebook_icon);
                        }
                        if (proveedor == 1){
                            holder.icon_proveedor2.setImageResource(R.drawable.agenda);
                        }       
                        if(proveedor == 2){
                            holder.icon_proveedor2.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor2.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor2.setImageResource(R.drawable.google_icon);
                        }

                    }

                    if(i==2){
                        if (proveedor == 0){
                            holder.icon_proveedor3.setImageResource(R.drawable.facebook_icon);
                        }
                        if (proveedor == 1){
                            holder.icon_proveedor3.setImageResource(R.drawable.agenda);
                        }       
                        if(proveedor == 2){
                            holder.icon_proveedor3.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor3.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor3.setImageResource(R.drawable.google_icon);
                        }

                    }

                    if(i==3){
                        if (proveedor == 0){
                            holder.icon_proveedor4.setImageResource(R.drawable.facebook_icon);
                        }                           
                        if (proveedor == 1){
                            holder.icon_proveedor4.setImageResource(R.drawable.agenda);
                        }
                        if(proveedor == 2){
                            holder.icon_proveedor4.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor4.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor4.setImageResource(R.drawable.google_icon);
                        }

                    }

                    if(i==4){
                        if (proveedor == 0){
                            holder.icon_proveedor5.setImageResource(R.drawable.facebook_icon);
                        }                           
                        if (proveedor == 1){
                            holder.icon_proveedor5.setImageResource(R.drawable.agenda);
                        }
                        if(proveedor == 2){
                            holder.icon_proveedor5.setImageResource(R.drawable.linkedin_icon);
                        }
                        if(proveedor == 3){
                            holder.icon_proveedor5.setImageResource(R.drawable.twitter_icon);
                        }
                        if (proveedor == 4){
                            holder.icon_proveedor5.setImageResource(R.drawable.google_icon);
                        }

                    }

                    i++;
            }
        }
         rowView.setTag(holder);

   return rowView;

  }

但它不起作用,我不知道为什么。在某些情况下,它应该显示多于 1,但它只显示 1。为什么?

有人能帮我吗?谢谢你!!

4

1 回答 1

0

我已经解决了我的问题!我的适配器没问题,问题出在 row_def.xml 上,因为它不是正确的项目参数,但现在我明白了!

这是正确的方法:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" android:id="@+id/row_def"
    android:orientation="horizontal" android:layout_width="fill_parent">

    <ImageView
        android:id="@+id/profile_picture"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="6dip" />

    <TextView 
        android:id="@+id/Nombre_Amigo" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_toRightOf="@+id/profile_picture"
        android:gravity="center_vertical"  />

     <ImageView
        android:id="@+id/proveedor_icon"
          android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="6dip"
        android:layout_alignParentRight="true"   
        android:layout_alignParentBottom="true"/>

      <ImageView
        android:id="@+id/proveedor_icon2"
          android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/proveedor_icon" 
        android:layout_marginRight="6dip"
        android:layout_marginBottom="6dip"
        android:layout_alignParentRight="true" 
        android:layout_alignParentTop="true"/>

       <ImageView
        android:id="@+id/proveedor_icon3"
          android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/proveedor_icon"
        android:layout_marginRight="6dip"
        android:layout_alignParentBottom="true"/>

        <ImageView
        android:id="@+id/proveedor_icon4"
          android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/proveedor_icon2"
        android:layout_above="@+id/proveedor_icon3"
        android:layout_marginRight="6dip"
        android:layout_marginBottom="6dip" 
        android:layout_alignParentTop="true"/>          


         <ImageView
        android:id="@+id/proveedor_icon5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/proveedor_icon3"
        android:layout_marginRight="6dip"  
        android:layout_alignParentBottom="true" />

</RelativeLayout>

感谢:D

于 2012-11-08T17:01:20.867 回答