包含图像和文本的列表视图

发布于 2024-10-24 22:22:33 字数 375 浏览 1 评论 0原文

我正在尝试制作一个列表,显示图像和描述图像的简单文本。 在互联网上的搜索中,我发现了很多方法可以做到这一点。有些人使用ArrayAdapter,其他人使用SimpleCursorAdapter。我注意到的一件事是,许多人创建继承自 ListActivity 的类,并在 setListAdapter 方法中插入从 Array 或 SimpleCursor 适配器派生的其他类。 第一个问题:这是最好的方法吗?

我创建了一个 LinearLayout ,里面有一个 ListView 。为了插入行,使用 ImageViewTextView 创建了另一个布局。 第二个问题:这是正确的吗?

我对创建这种类型的组件感到困惑。这是执行此操作的正确方法吗?

I'm trying to do a List that shows an image and a simple text describing the image.
In my search on internet I found many ways to do this. Some people using ArrayAdapter, others using SimpleCursorAdapter. One thing I notice, many people are creating classes inheriting from ListActivity and in the setListAdapter method they are inserting other classes derived from Array or SimpleCursor adapter.
First question: is this the best way to do this?

I created a LinearLayout with a ListView inside. And to insert rows, another layout was created with an ImageView and a TextView.
Second question: is this correct?

I'm confusing about creation of this type of component. Is this the correct way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

水波映月 2024-10-31 22:22:34

是的,这是正确的,尽管您需要使用 CursorAdapter 而不是 SimpleCursorAdapter,因为 SimpleCursorAdapter 的目的是填充其中只有一个 TextView 的行。

您的 CursorAdapter 上将有一个 getView 方法,用于扩展行布局:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) { // we don't have a recycled view
        convertView = LayoutInflator.from(getContext()).inflate(
          R.layout.row, parent, false);
    }
    // setup our row
    TextView text = (TextView) convertView.findViewById(R.id.text_view);
    text.setText( ... );
    ImageView image = (ImageView) convertView.findViewById(R.id.image_view);
    image.setImageBitmap( ... );
    return convertView;
}

当您设置视图的文本和图像时,您可以使用适配器方法,例如 getItem 访问您需要的底层数据。

Yes, this is correct, although you will need to use a CursorAdapter instead of a SimpleCursorAdapter, since the point of a SimpleCursorAdapter is to populate a row with only a TextView in it.

You will have a getView method on your CursorAdapter that expands your row layout:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) { // we don't have a recycled view
        convertView = LayoutInflator.from(getContext()).inflate(
          R.layout.row, parent, false);
    }
    // setup our row
    TextView text = (TextView) convertView.findViewById(R.id.text_view);
    text.setText( ... );
    ImageView image = (ImageView) convertView.findViewById(R.id.image_view);
    image.setImageBitmap( ... );
    return convertView;
}

When you're setting the text and image of your views, you can use adapter methods like getItem to access the underlying data you need.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文