我正在做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。为什么?
有人能帮我吗?谢谢你!!