我想更改自定义Listview
的每个项目背景颜色。因此,使用适配器,我使用getView()
,但它不起作用。怎么做?
我的代码如下:
adapter = new SimpleAdapter(this, aaReportData, R.layout.report_card1, new String[] { "Topic" }, new int[] { R.id.tvTopic}) {
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
convertView.setBackgroundColor(R.color.lightish);
return convertView;
}
};
答案 0 :(得分:1)
根据@Dhaval的说法,我将背景颜色定义为父版面,并且工作正常。现在,我希望每个List Item之间有一些空间,所以我使用Drawable并将颜色和边框底部设置为白色以用于某些空间。
现在工作正常,我按照我的要求得到了结果。非常感谢你们所有人。
答案 1 :(得分:0)
你应该使用 setBackgroundResource()方法而不是 setBackgroundColor()
试用以下代码
view.setBackgroundResource(R.color.blue)
adapter = new SimpleAdapter(this, aaReportData, R.layout.report_card1, new String[] { "Topic" }, new int[] { R.id.tvTopic}) {
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
View v = super.getView(position, convertView, parent);
// TODO Auto-generated method stub
v.setBackgroundResource(R.color.lightish);
return convertView;
}
};
答案 2 :(得分:0)
convertView = View.inflate(mContext, R.layout.list_item, null);
convertView.setBackgroundColor(mContext.getResources().getColor(R.color.lightish));
您应该夸大列表项视图 使用上面的行来设置要查看的颜色 问候。
答案 3 :(得分:0)
在xml
中使用此选择器ListView
:
<item>
<shape android:shape="rectangle">
<gradient
android:startColor="@android:color/holo_orange_light"
android:endColor="@android:color/holo_red_light"
android:angle="270"/>
</shape>
</item>
<强>更新强>
在您的ListView
中进行更改,例如:
<ListView
android:id="@+id/listView_contact"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@android:color/darker_gray"
android:dividerHeight="0.3dp"
android:background="@android:color/transparent"
android:listSelector="@drawable/productlistselector">
</ListView>
您可以使用divider
并设置其背景transparent
,而不是设计新的自定义背景..