android - 带有标题、图像和文本的 ListView ?

标签 android android-layout listview android-xml

我需要制作一个 ListView ,左侧有一张图片,标题 float 在图片右侧,下方有描述。 我已经查看了文档中的 ListView ,但我似乎找不到这方面的示例。 我有一个在 XML 中定义的选项卡 View (根据 android 示例 tabs1),其中 ListView 作为第一个选项卡内容。 但是我想通过 RSS 新闻源将内容添加到代码中的 ListView 。

我正在考虑使用 webview 使用 html 注入(inject)字符串,但我将如何从 drawable 文件夹中插入图像。 (这些图片只是本地存储的“新闻图标”,并非来自互联网的图片)

很抱歉,如果这是一个有点菜鸟的问题,但任何帮助表示赞赏:)

最佳答案

我想您所描述的结构是指 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;
}

关于android - 带有标题、图像和文本的 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5562916/

相关文章:

android - 旋转后 TextView 被剪切

qt - qml 中的 ListView 是否有 IconMode?

android - 缺少 64 位支持/缺少推送通知授权电话

android - 即使允许也允许返回 false

java - 如何从 drawable 转换为 int 数组

java - EditText 值在滚动 ListView android 上被清除

java - 从列表适配器内部更新 ListView

java - Android 可滚动布局 - 方向更改时 View 不可见

c# - Xamarin Android 和 Azure SQL

android - 按钮的随机大小和位置 : unexpected behavior