在 ListActivity 中自定义内置的 ListView

Customise inbuilt ListView in 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" 时。文本的默认设置会覆盖任何自定义设置。

感谢任何帮助。

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

在布局中创建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);