在列表视图上显示多行文本

时间:2016-09-07 04:07:13

标签: java android listview android-studio

我一直在阅读simple_list_item_2以及在列表视图上显示多行文本的其他标准方法,但没有人给我我想要的东西。截至目前,我正在使用listview的自定义布局,但我缺乏关于如何自定义列表视图中的每一行以显示它自己的大文本行,工具提示(小文本)的知识(在阅读了多篇文章之后) )和图片。

以下是我用于初始化listview并设置适配器

的代码
//List View
        final String[] itemname = {
                "More Rockets",
                "Better Lasers",
                "Super Shield",
                "Super Defense"
        };

        final String[] itemtip = {
                "+1 attack",
                "+5 attack ",
                "+1 defense",
                "+5 defense"
        };

        final ListView upgradeList = (ListView) findViewById(R.id.upgradeListView);

        upgradeList.setAdapter(new ArrayAdapter<String>(
                this, R.layout.program_list,
                R.id.Itemname, itemname));

program_list.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="80dp"
    android:background="@drawable/buttontemplate">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Item Name"
        android:id="@+id/Itemname"
        android:textSize="30sp"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/imageView"
        android:layout_marginLeft="15sp" />

    <ImageView
        android:layout_width="30sp"
        android:layout_height="30sp"
        android:id="@+id/imageView"
        android:src="@drawable/heart"
        android:layout_marginLeft="20dp"
        android:layout_alignBottom="@+id/Itemname"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Tooltip:"
        android:id="@+id/toolTip"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/Itemname"
        android:layout_marginLeft="20dp" />


</RelativeLayout>

我的想法是在列表视图中放置另一行文本,但它不是正确数量的参数

upgradeList.setAdapter(new ArrayAdapter<String>(
                this, R.layout.program_list,
                R.id.Itemname, itemname, R.id.toolTip, itemtip));

非常感谢任何帮助! -Kelton

1 个答案:

答案 0 :(得分:0)

首先使用字符串itemname,String itemtip创建一个POGO类,然后生成getter和setter方法,然后从activity类生成这个pogo类的arraylist,即

#include <windows.h>
#include <stdio.h>

__declspec(dllexport) void sampledllmain()
{
    MessageBox(NULL, "sample text","sample title", 0);
}

BOOL APIENTRY DllMain(HANDLE hHandle, DWORD dwReason, LPVOID Reserved)
{
    switch(dwReason)
    {
        case DLL_PROCESS_ATTACH:
                sampledllmain();
                break;
    }
    return 1;
}

这里你的arraylist大小是4。 现在让baseadapter或recyler视图通过这个arraylist