自定义列表视图?

发布于 2024-10-27 15:54:08 字数 370 浏览 1 评论 0原文

我有 Fedor 制作的代码,可以找到“此处"。

第一张图是我现在拥有的,

第二张图是我想要完成的。

有人可以指导我吗?我已经挣扎了好几天试图解决这个问题。 请帮助我,提前致谢!

在此处输入图像描述

在此输入图像描述

I have a code made by Fedor, it can be found "here".

The first image is what I have now,

and the second image is what I want to accomplish.

Can someone guide me with this. I have been struggling for days trying to solve this problem.
Please help me, Thanks in advance!

enter image description here

enter image description here

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

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

发布评论

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

评论(3

马蹄踏│碎落叶 2024-11-03 15:54:08

这是一个类似的例子。您必须为您的 ListView 创建一个自定义适配器。

http://www.softwarepassion.com/android-series- custom-listview-items-and-adapters/

您可能可以使用该示例的大部分内容。只需更改 row.xml 即可创建所需的布局以及适配器中的 getView() 。

Here is an example of something similar. You have to create a custom adapter for your ListView.

http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

You can probably use most of that example. Just change the row.xml to create tha layout you want and the getView() in the adapter.

从此见与不见 2024-11-03 15:54:08

您只需修改列表项布局(在 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 的支持。

You just need to modify the list item layout (in item.xml) to have another 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>

and modify LazyAdapter's getView() method to add support for the second ImageView.

九公里浅绿 2024-11-03 15:54:08

可以在此处找到创建自定义 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 的资源并且没有文本图像的文本)。像这样的东西可能会起作用(假设您有一个 Model 类,它将保存所有 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());

当然,上面的代码片段假设您有一个名为 myList 的 ArrayList,它也可以获取图像名称和要显示的文本。

A tutorial for creating a Custom ListView can be found here:
http://justcallmebrian.com/?p=139

Just need to change the XML layout for each item to have 2 ImageViews like Robby said. Then in your getView of your Adapter (LazyAdapter if you followed along with the other people's answers) you should have something like this:

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 text = (TextView)findViewById(R.id.text);
text.setText("I have 2 images");

The tutorial I pasted earlier depicts a way to make the generation of the list dynamic (i.e. not having the resource of R.drawable.icon1/2 and not having the text for your Text images). Something like this may work (assuming you have a Model class that will hold all 3 pieces of information):

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());

Of course the snippet above assumes you have an ArrayList called myList that also getters to get the image names and the text to display.

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