我一直在阅读simple_list_item_2和其他在列表视图上显示多行文本的标准化方法,但是没有一种方法能满足我的需求。到目前为止,我正在为列表视图使用自定义布局,但是(在阅读多篇文章之后)我缺乏关于如何自定义列表视图中的每一行以显示大行文字,工具提示(小行文字)和图片的知识(在阅读多篇文章之后) 。

这是我用来初始化列表视图并设置适配器的代码

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


很感谢任何形式的帮助!
-凯尔顿

最佳答案

首先创建一个具有String itemname,String itemtip字段的POGO类,然后生成getter和setter方法,然后从活动类中创建此pogo类的数组列表,即

ArrayList<MyPOGO> arraylist =new ArrayList();
MyPOGO myPogo1=new MyPogo("More Rockets","+1 attack");
MyPOGO myPogo2=new MyPogo("Better Lasers","+5 attack ");
MyPOGO myPogo3=new MyPogo("Super Shield","+1 defense");
MyPOGO myPogo4=new MyPogo("Super Defense", "+5 defense");
arraylist.add(myPogo1);
arraylist.add(myPogo2);
arraylist.add(myPogo3);
arraylist.add(myPogo);


在这里,您的arraylist大小为4。
现在,使baseadapter或recyler视图通过此arraylist

09-04 09:36