【发布时间】:2011-07-25 10:14:52
【问题描述】:
【问题讨论】:
标签: android listview load lazy-evaluation
【问题讨论】:
标签: android listview load lazy-evaluation
可以在此处找到创建自定义 ListView 的教程: http://justcallmebrian.com/?p=139
只需要更改每个项目的 XML 布局,就可以像 Robby 所说的那样拥有 2 个 ImageView。然后在您的适配器的 getView 中(如果您跟随其他人的答案,则为 LazyAdapter),您应该有这样的内容:
ImageView image1 = (ImageView) findViewById(R.id.image1); image1.setResource(R.drawable.icon1); ImageView image2 = (ImageView) findViewById(R.id.image2); image2.setResource(R.drawable.icon2); TextView 文本 = (TextView)findViewById(R.id.text); text.setText("我有 2 张图片");
我之前粘贴的教程描述了一种使列表动态生成的方法(即没有 R.drawable.icon1/2 的资源并且没有文本图像的文本)。这样的事情可能会起作用(假设您有一个模型类将包含所有 3 条信息):
int resid1 = context.getResources().getIdentifier("com.domain.sub:drawable/" + myList.get(position).getImage1Name, null, null);
ImageView image1 = (ImageView) findViewById(R.id.image1);
image1.setResource(resid1);
int resid2 = context.getResources().getIdentifier("com.domain.sub:drawable/" + myList.get(position).getImage2Name, null, null);
ImageView image2 = (ImageView) findViewById(R.id.image2);
image2.setResource(resid2);
TextView text = (TextView)findViewById(R.id.text);
text.setText(myList.get(position).getText());
当然,上面的 sn-p 假设您有一个名为 myList 的 ArrayList,它还可以获取图像名称和要显示的文本。
【讨论】:
您只需要修改列表项布局(在 item.xml 中)以拥有另一个 ImageView。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<ImageView android:id="@+id/image1" android:layout_width="50dip"
android:layout_height="50dip" android:src="@drawable/stub"
android:scaleType="centerCrop" />
<ImageView android:id="@+id/image2" android:layout_width="50dip"
android:layout_height="50dip" android:src="@drawable/stub"
android:scaleType="centerCrop" />
<TextView android:id="@+id/text" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="1"
android:layout_gravity="left|center_vertical" android:textSize="20dip"
android:layout_marginLeft="10dip" />
</LinearLayout>
并修改 LazyAdapter 的 getView() 方法以添加对第二个 ImageView 的支持。
【讨论】:
这是一个类似的例子。您必须为您的 ListView 创建一个自定义适配器。
http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/
您可能可以使用该示例的大部分内容。只需更改 row.xml 以创建您想要的布局和适配器中的 getView()。
【讨论】: