在Android中更改自定义列表视图项背景颜色

时间:2014-04-02 10:34:46

标签: android listview android-listview

我想更改自定义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;
                }
            };

4 个答案:

答案 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,而不是设计新的自定义背景..