将视图背景颜色更改为列表视图

时间:2014-09-10 19:44:11

标签: android android-listview

我正在尝试更改视图组件的背景颜色,但没有成功

public View getView(int position, final View convertView, ViewGroup parent) {
    View view = convertView;
    try {
        if (view == null) {
            LayoutInflater vi = (LayoutInflater) mContext
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = vi.inflate(R.layout.listview_accounts, null); // --CloneChangeRequired(list_item)
        }
        final Account listItem = (Account) mList.get(position); // --CloneChangeRequired
        if (listItem != null) {

            int color = listItem.getColor();

            View vColor = (View) view
                    .findViewById(R.id.lv_account_view_color);

            vColor.setBackgroundColor(color);
            }
        }
    } catch (Exception e) {
    }
    return view;
}

我可以在textview中设置一些文字,但设置颜色不起作用。

有人可以帮我设置颜色吗?感谢

使用的示例颜色为:-16711717

修改

Listview项目布局:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<View
    android:id="@+id/lv_account_view_color"
    android:layout_width="@dimen/activity_horizontal_margin"
    android:layout_height="wrap_content"
    android:background="#167117" />

<TextView
    android:id="@+id/lv_account_tv_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="@dimen/activity_horizontal_margin"
    android:layout_marginLeft="@dimen/activity_horizontal_margin"
    android:layout_marginTop="@dimen/activity_horizontal_margin"
    android:textColor="@color/black" />

</LinearLayout>

背景无法在xml中设置,它是动态颜色

3 个答案:

答案 0 :(得分:0)

您可以直接在项目的listview_accounts.xml文件中设置组件的背景颜色。例如

<component>
android:background="@color/color_name"
</component>

您必须在您的values文件夹中创建一个color.xml文件(可能已存在)并添加颜色值ex:-16711717。 试试看,让我知道

 <View
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="#167117" />

答案 1 :(得分:0)

试试这个:vColor.setBackgroundColor(Color.parse(&#34; #yourcolorcode&#34;));

答案 2 :(得分:0)

您可以在This link

找到解决方案

只是你必须改变一件事。在delete.onclick方法中替换list.removeView(customView);使用Customview.setbackground(Color.red);这可能会对你有所帮助。祝你好运。