我想您所描述的结构是指 ListView 项目的内容。您可以通过为单个项目定义布局来实现此目的。下面的代码在类似的情况下对我有用:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:padding="6dip" android:layout_height="?android:attr/listPreferredItemHeight">
<ImageView
android:id="@+id/result_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="6dip"
android:src="@drawable/image1"/>
<TextView
android:id="@+id/result_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/result_icon"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignWithParentIfMissing="true"
android:gravity="center_vertical"
android:text="Title" />
<TextView
android:id="@+id/result_second_line"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_toRightOf="@id/result_icon"
android:layout_below="@id/result_name"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:singleLine="true"
android:ellipsize="marquee"
android:text="Second line" />
</RelativeLayout>
然后,您需要扩展 BaseAdapter 以与您的 ListActivity 一起使用。您将需要扩展布局并使用来自 RSS 提要的数据填充它。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Result result = this.results.get(position);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout view = (RelativeLayout)
inflater.inflate(R.layout.result_item, null, false);
ImageView image = (ImageView) view.findViewById(R.id.result_icon);
image.setImageResource(result.imageResource);
TextView name = (TextView) view.findViewById(R.id.result_name);
name.setText(result.location);
TextView secondLine = (TextView) view.findViewById(R.id.result_second_line);
secondLine.setText(result.shortDescription);
return view;
}