在ListActivity中自定义内置的ListView

时间:2015-07-07 04:44:22

标签: android listview android-styles listactivity

我想在ListActivity内自定义内置列表。我宁愿用我的资源来做,而不是动态做。

我一直在努力寻找并解决这个问题。 有这个问题Cant change listview font in listactivity,但没有优雅的答案。

我有一个列表视图:

<ListView
    style="@style/ListView"
    android:id="@android:id/list"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"/>

使用样式资源:

<style name="ListView">
    <item name="android:textSize">20sp</item>
    <item name="android:textColor">#FFF</item>
     ...
</style>

这些样式适用于其他元素。只有当我使用android:id="@android:id/list"时才会这样。文本的默认设置会覆盖任何自定义设置。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你可以通过这样做来实现。

在布局中创建listview_row.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/textList"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:textSize="20sp"
        android:textStyle="italic"
        android:textColor="#00ffff" />

</LinearLayout>

在您的代码实现数组适配器

ArrayAdapter<String> listAdapter = new ArrayAdapter <String>(this, 
            R.layout.listview_row, R.id.textList, yourListValue);
setListAdapter(listAdapter);