自定义ListItem颜色android_simple_listitem

时间:2013-12-21 21:19:24

标签: android android-layout android-listview

为了自定义android simple list item 1的颜色,我创建了一个看起来像

的styles.xml
<resources>
    <style name="BlackText">
        <item name="android:textColor">#000000</item>
    </style>
</resources>

并将其应用于清单文件中的活动,如

 android:theme="@style/BlackText"

这种解决了我的问题,默认列表项的颜色更改为黑色,但我在该活动上的对话框的文本颜色也更改为黑色,我不想这样做。 Oe的另一种选择是制作我自己的adapter并覆盖我不想做的bindView方法还有其他选择......?

修改

我制作了自己的布局,如

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/somerandomid"

    android:padding="5sp"
    android:layout_width="fill_parent"
    android:textSize="15sp"
    android:singleLine="true"
    android:background="#FFF"
    android:textColor="#000"
    android:gravity="center"
    android:layout_height="fill_parent"/>

并像

一样使用它
 adapter= new SimpleCursorAdapter(SomeActivity.this,R.layout.myownlayout, cursor, columns, views);

问候。

2 个答案:

答案 0 :(得分:1)

那么你可以做什么而不是将ListView绑定到android.R.layout.simple_list_item_1,你可以使用一个TextView创建自己的布局。假设布局将被称为listviewlayout.xml。它看起来像这样:

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

    <TextView
        android:id="@+id/textviewlist"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/black"
        android:text="TextView" >
    </TextView>

</LinearLayout>

您可能需要移动TextView以使其处于正确的位置。然后,从清单中删除此部分:

android:theme="@style/BlackText"

然后像这样设置ListView适配器:

setListAdapter(new ArrayAdapter(this, R.layout.listviewlayout, listItems));

答案 1 :(得分:0)

显然我必须复制与默认布局中指定的id相同的ID,所以我改变了

android:id="@+id/somerandomid"

android:id="@android:id/text1" 

我的事情进展顺利