Java 创建自定义适配器以实现网格视图时出错
这是我的自定义适配器的“getView”代码。。。。问题是假设我有一个7个名字的列表要显示。。。。我必须在一行中显示两个联系人,作为网格视图的一部分。。。。现在,我将原始列表分为两个列表。。。。现在一个列表有4个联系人,另一个有3个。。。。问题是我的列表在第二个列表的空白处重复了联系人。。。。它不应该是可见的,但它会在我上下滚动时不断重复随机联系人Java 创建自定义适配器以实现网格视图时出错,java,android,Java,Android,这是我的自定义适配器的“getView”代码。。。。问题是假设我有一个7个名字的列表要显示。。。。我必须在一行中显示两个联系人,作为网格视图的一部分。。。。现在,我将原始列表分为两个列表。。。。现在一个列表有4个联系人,另一个有3个。。。。问题是我的列表在第二个列表的空白处重复了联系人。。。。它不应该是可见的,但它会在我上下滚动时不断重复随机联系人 @Override public View getView(int position, View convertView, ViewGrou
@Override
public View getView(int position, View convertView, ViewGroup parent) {
viewholder rowView = new viewholder();
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
if(convertView == null)
{
convertView = inflater.inflate(R.layout.d_list, parent, false);
rowView.tv1 = (TextView) convertView.findViewById(R.id.textView1);
rowView.imgv1 = (ImageView) convertView.findViewById(R.id.imageView1);
rowView.tv2 = (TextView) convertView.findViewById(R.id.textView2);
rowView.imgv2 = (ImageView) convertView.findViewById(R.id.imageView2);
rowView.imbg = (ImageView) convertView.findViewById(R.id.imageView3);
convertView.setTag(rowView);
}
else
{
rowView = (viewholder) convertView.getTag();
}
rowView.imbg.setImageResource(resid[colors.get(position)]);
byte[] getin = convertBtob(images.get(position));
Bitmap bitmap = BitmapFactory.decodeByteArray(getin, 0, getin.length);
final String a = values.get(position);
rowView.tv1.setText(a);
rowView.imgv1.setImageBitmap(Bitmap.createScaledBitmap(bitmap, 75, 75, false));
if(list1.get(list1.size()-1).equals(a));
else
{
opt op2 = new opt(values2.get(position));
byte[] getin2 = convertBtob(images2.get(position));
Bitmap bitmap1 = BitmapFactory.decodeByteArray(getin2, 0, getin2.length);
rowView.tv2.setText(String.valueOf(a));
rowView.imgv2.setImageBitmap(Bitmap.createScaledBitmap(bitmap1, 75, 75, false));
rowView.tv2.setVisibility(1);
rowView.imgv2.setVisibility(1);
rowView.tv2.setOnClickListener(op2);
rowView.imgv2.setOnClickListener(op2);
}
opt op = new opt(values.get(position));
rowView.tv1.setOnClickListener(op);
rowView.imgv1.setOnClickListener(op);
return convertView;
}
public class opt implements android.view.View.OnClickListener
{
String name;
public opt(String name)
{
this.name = name;
}
@Override
public void onClick(View v) {
makemenu(name);
}
}
}//EndofCustomAdapter1
像在getView()中那样更改代码 希望对你有帮助
viewholder rowView;
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
if(convertView == null)
{
rowView = new viewholder();
convertView = inflater.inflate(R.layout.d_list, parent, false);
rowView.tv1 = (TextView) convertView.findViewById(R.id.textView1);
rowView.imgv1 = (ImageView) convertView.findViewById(R.id.imageView1);
rowView.tv2 = (TextView) convertView.findViewById(R.id.textView2);
rowView.imgv2 = (ImageView) convertView.findViewById(R.id.imageView2);
rowView.imbg = (ImageView) convertView.findViewById(R.id.imageView3);
convertView.setTag(rowView);
}
else
{
rowView = (viewholder) convertView.getTag();
}