2013-05-05 64 views
1

我定义了一个ListAdapter:如何设置ListAdapter的文字颜色?

setListAdapter(new ArrayAdapter<String>(TimeMode_Choose.this, android.R.layout.simple_list_item_1, Chooses)); 

然后我定义的背景色:

getListView().setBackgroundColor(Color.BLACK); 

但现在我的问题是,整个列表的文本颜色为黑,我看不到名单。

如何更改textcolor?

回答

0

您需要覆盖getView()方法ArrayAdapter,并更改其中的文本颜色。

创建布局(row_layout)像这个 - >

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

    <TextView 
     android:id="@+id/listItem" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@+id/listItem" 
     android:textSize="20px" > 
    </TextView> 

</LinearLayout> 

现在,在Java代码 - >

setListAdapter(new ArrayAdapter<String>(TimeMode_Choose.this, R.layout.row_layout, R.id.listItem, Chooses)); 
+0

你能详细说一下吗? – 2013-05-05 18:05:26

+0

http://www.vogella.com/articles/AndroidListView/article.html 请参阅第9节。 – 2013-05-05 18:14:53

+0

我编辑了我的答案 – 2013-05-05 18:23:36

0

改变背景颜色布局保持你列出不同的颜色无论是在XML文件或通过java代码。

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#FFFFFF"> 

<ListView..../> 

RelativeLayout rl=(RelativeLayout)findViewById(R.id.your_layout_id); 
rl.setBackgroundColor(Color.WHITE); 
1

你可以做以下的事情做所需的任务

  1. 创建自定义列表视图或
  2. 定义样式,如下
<?xml version="1.0" encoding="utf-8"?> 
<resources> 

<style name="ListFont" parent="@android:style/Widget.ListView"> 
    <item name="android:textColor">#FF0000</item> 
    <item name="android:typeface">sans</item> 
</style> 

</resources> 

将此样式添加到您在Manifest XML文档中的Activity定义中作为android:theme属性,并将值赋给您创建的样式的名称。

0

如何更改textcolor?

你并不需要创建一个自定义的适配器(如维沙尔建议),你也可以做到这一点使用标准ArrayAdapter(假设你只需要一个TextView)。

您只需要使用this构造函数,而不是当前的一个:

public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) 

现在创建一个布局,只有一个TextView并将其设置为你想要的颜色,并设置你的适配器是这样的:

setListAdapter(new ArrayAdapter<String>(TimeMode_Choose.this, R.layout.my_layout, R.Id.myTextViewsId, Chooses));