我正在尝试将信息动态添加到ListView。我要添加的信息由“设备名称”(主项)和“ MAC地址”(子项)组成。下面是一个在线示例。注意:我想用设备1的名称替换项1,用设备1的MAC地址替换子项1,以此类推。由于必须在扫描设备时填充列表,因此必须动态完成。
。
在将此标记为重复之前,我已经看过以下问题,但这些问题对我没有帮助:在Android中添加ListView子项文本,如何在ListView中添加子项,将项目和子项添加到ListView
通过阅读这些问题得出的结论是,我需要实现一个自定义ArrayAdapter
并覆盖该getView()
方法。我创建了一个包含两个文本视图的自定义布局:
cyan_list.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/main_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/cyan"/>
<TextView
android:id="@+id/sub_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_cyan"/>
</LinearLayout>
然后,我尝试在我的Activity类中创建一个自定义ArrayAdapter,但是我对放入public View getView(final int position, View convertView, ViewGroup parent)
方法中的内容一无所知。另外,如果我想做的只是添加textview子项,是否需要创建自定义ArrayAdapter?
您的问题的答案是:不,ArrayAdapter
如果您只想添加项目,则无需创建自定义。但是,我建议您在自定义布局的情况下创建它,因为您将获得对所显示项目的大量控制。您没有在创建代码的地方添加代码ArrayAdapter
,但在这种情况下,我将使用此构造函数。重要的部分是第三个参数:在活动中,应将ArrayList
带有要添加到ArrayAdapter的初始项的存储,然后,如果要添加新项,只需将其添加到ArrayAdapter
并调用notifyDataSetChanged()
适配器。只需这样做,您的项目就会被添加到布局并显示。如果您需要自己重写GetView
方法ArrayAdapter
,建议您这样做链接,它帮助我理解了整个过程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句