嗨,我想在列表视图中显示两个项目。我知道我们可以通过以下方式做到这一点。 ArrayList<Map<String, String>>
但我需要与这两个项目一起显示一张图片。
这是我想要的图像。
我用一个图像视图和两个文本视图创建 xml 文件。我不明白该怎么做。
您应该实现该类ArrayAdapter
并创建自己的ListAdapter
.
见:http ://www.vogella.com/articles/AndroidListView/article.html
您需要使用您的单元设计创建一个布局文件。在适配器中,然后您以编程方式从布局中获取一个视图,调用当前布局的 inflate 方法,并填充字段并返回它。
对我来说,这样做的方法是使用 BaseAdapter。您需要在活动上拥有列表视图,为项目布局提供一个 xml,然后在列表视图上使用适配器调用 setAdapter()。
您可以在此处找到一些信息: Android 中 Listview 上的延迟加载图像(初级)?
首先,您应该使用带有自己的对象的 ArrayList,例如
Class MyListeItem {
String text1;
String text2;
String image;
}
List<MyListItem> = new ArrayList<MyListItem>();
然后创建一个扩展 BaseAdapter 的类来保存列表。创建一个 xml 文件,即。res/layouts 文件夹和 BaseAdapter 的 getView() 方法中的“my_listitem”执行类似
LinearLayout layout = (LinearLayout)View.inflate(context, R.layout.my_listitem, null);
这是这样一个列表的实现:Contact-Picture-Sync
这是一个list item
xml 布局文件,您可以使用simplest attributes
<?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="wrap_content"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:id="@+id/list_item_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:paddingLeft="16dp">
<TextView
android:id="@+id/list_item_date_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tomorrow"/>
<TextView
android:id="@+id/list_item_forecast_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Clear"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/list_item_high_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="25°"/>
<TextView
android:id="@+id/list_item_low_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6°"/>
</LinearLayout>
</LinearLayout>
这会像这样
你是最后一个符合你要求can remove
的嵌套LinearLayout