膨胀的listview中的麻烦

时间:2011-02-07 13:24:55

标签: android image listview

我正在开发自定义(充气)列表视图。其中我使用文本和背景图像的文本(根据条件)。 现在我在滚动列表视图时遇到问题,即文本视图的背景与其他文本视图重叠。 以下是示例代码:

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

 View icontextlayout=convertView;
     icontextlayout= inflater.inflate(R.layout.layout_complex_list, null);
     TextView Txt1=(TextView)icontextlayout.findViewById(R.id.txt1);
if(disp1==true)
{
Txt1.setBackgroundResource(R.drawable.pic)
}
    else
Txt1.setText("Text1 "+strUser);//

    TextView Txt2=(TextView)icontextlayout.findViewById(R.id.txt2);
if(disp2==true)
{
Txt2.setBackgroundResource(R.drawable.pic);
}
    else Txt2.setText("Text2: "+strIndus);
return icontextlayout;      

}

请你帮我解决一下背景图片pic与其他背景图片不重叠的问题。

感谢你......

1 个答案:

答案 0 :(得分:1)

问题是,当您不需要背景时,必须设置默认背景。例如:

if(disp1==true){
    Txt1.setBackgroundResource(R.drawable.pic);
    Txt1.setText("");
}
else{
    Txt1.setText("Text1 "+strUser);//
    Txt1.setBackgroundDrawable(null);
}

另外,如果您不介意,我想就您的代码向我提供意见:


View icontextlayout=convertView;
icontextlayout= inflater.inflate(R.layout.layout_complex_list, null);

哪个不好,因为你实际上并没有使用convertView(当你调用inflater.inflate时)它会创建一个新行,因此你的列表会非常慢。

  • if(disp2==true)是多余的。您应该考虑使用if(disp2)