具有多个子项目的项目列表的自定义适配器?

Posted

技术标签:

【中文标题】具有多个子项目的项目列表的自定义适配器?【英文标题】:Custom adapter for a list of items that have multiple child items? 【发布时间】:2014-06-22 13:15:36 【问题描述】:

我将如何为此布局编写适配器。我开始想使用线性和相对布局制作一个列表,以便每个列表项都有子项相对于彼此水平对齐。这是布局文件和视图的屏幕截图。

我了解如何编写简单的列表视图和适配器。但只是想知道我如何才能获得更复杂的列表,而不仅仅是手上的子列表项。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/trade_scenario_linear_main"
    android:layout_
    android:layout_
    android:orientation="vertical"
    android:background="#8a929d">
    <RelativeLayout
        android:layout_
        android:layout_
        android:padding="6dip"
        android:background="#e8e7e2">

        <ImageView
            android:id="@+id/avatar"
            android:layout_
            android:layout_
            android:layout_alignParentBottom="true"
            android:layout_alignParentTop="true"
            android:contentDescription="TODO"
            android:src="@drawable/avatar_temp" />

        <TextView
            android:id="@+id/username"
            android:layout_
            android:layout_
            android:layout_alignParentTop="true"
            android:layout_alignWithParentIfMissing="true"
            android:layout_toRightOf="@id/avatar"
            android:text="Shepherd"
            android:textColor="#ED872D"
            android:textSize="12sp" />

        <ImageView
            android:id="@+id/clock_icon"
            android:layout_
            android:layout_
            android:layout_marginLeft="90dp"
            android:layout_gravity="right"
            android:layout_toRightOf="@id/username"
            android:src="@drawable/clock_icon" />
        <TextView
            android:id="@+id/clock_data"
            android:layout_
            android:layout_
            android:layout_toRightOf="@id/clock_icon"
            android:textSize="14sp"
            android:text="22H 30mins"/>

        <ImageView
            android:id="@+id/comments_icon"
            android:layout_
            android:layout_
            android:layout_alignParentBottom="true"
            android:layout_toRightOf="@id/avatar"
            android:src="@drawable/comment" />

        <TextView
            android:id="@+id/comments_num"
            android:layout_
            android:layout_
            android:layout_alignParentBottom="true"
            android:layout_alignTop="@+id/comments_icon"
            android:layout_toRightOf="@id/comments_icon"
            android:ellipsize="marquee"
            android:singleLine="true"
            android:text="14"
            android:textSize="12sp" />

    </RelativeLayout> 
</LinearLayout>

【问题讨论】:

【参考方案1】:

创建自定义列表并创建自定义适配器,就像这样 遵循对您有帮助的教程: Custom Listviews 也跟着那更essier List View

【讨论】:

不会让我更早地编辑我的评论。而且我按回车键太快了。无论如何,androidhive.info/2012/02/… 正是我想要的。感谢您提供指向 Android Hive 的指针。真是不错的资源。主线程中的 XML 解析和 http 调用对于任何试图将其复制到生产代码的人来说都是一个危险信号。应该使用异步任务,或者使用像 Volley 这样的库。

以上是关于具有多个子项目的项目列表的自定义适配器?的主要内容,如果未能解决你的问题,请参考以下文章

ArrayIndexOutOfBoundsException 与 ListView 中的多个视图的自定义 Android 适配器

使用适用于 Android 应用的自定义适配器将项目动态添加到列表视图

具有获取 json 值的片段中的自定义适配器

选中复选框时检查Android listview多个项目

具有多种布局的Android ListView

具有包含 CheckBoxes 的自定义适配器的 Listview