我有一个listview显示自定义行布局显示Textview和2 EditTexts。 我在textview背景中显示图像,文本在它上面。 在getView方法中,我异步加载图像并显示在列表视图中。 listview是否不为不可见的行调用getview方法。
当我滚动时,textview包含不同的图像,当它变得有些可见时获取实际图像。为什么会出现这种行为。因为我没有得到它,所以请更新。
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
View v=arg1;
EditText t1,t2;
final TextView tv;
if (arg1 == null)
{ // if it's not recycled, initialize some attributes
LayoutInflater lf=(LayoutInflater)conn.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v=lf.inflate(R.layout.layitem,arg2,false);
}
tv = (TextView)v.findViewById(R.id.textView1);
LinearLayout.LayoutParams ll=new LinearLayout.LayoutParams(width,width/2); // setting width to same as that of mobile screen
ll.setMargins(10, 0, 10, 0);
tv.setLayoutParams(ll);
// tv.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
t1=(EditText)v.findViewById(R.id.editText1);
t2=(EditText)v.findViewById(R.id.editText2);
// here count is actual no of rows that have image loaded from server rest will have default background
if(arg0<count)
{
Bitmap object=loadimage(iurl[arg0]);
tv.setBackground(new BitmapDrawable(conn.getResources(),object));
tv.setText(texts[arg0]);
t1.setText(prays[arg0]);
}
else
{
tv.setBackgroundResource(R.drawable.wish);
tv.setText("");
t1.setText("0");
}
return v;
}
答案 0 :(得分:0)
ListView
会在可见或可见时调用getView。而且在getView
中,传递的参数convertView
实际上是缓存视图(或null
)。它可能是您之前创建的视图之一,因此它可能包含一些当前不可见的旧图像。