如何在自定义列表视图的自定义适配器类中传递多个数组值?
我有一个列表视图,左侧有一个图像图标,右侧有三个文本视图。 我已经创build了布局,但在创build适配器类时,我正面临一些问题。 这里是代码:
import android.app.Activity; import android.widget.ArrayAdapter; public class CustomList extends ArrayAdapter<String>{ private final Activity context; private final String[][] listRow; private final Integer[] imageId; public CustomList(Activity context, String[][] listRow, Integer[] imageId){ super(context, R.layout.rowlayout, listRow); } }
首先,我为三个文本视图创build了三个1D数组,但是在构造函数中,我无法将它们全部传递。
所以我不得不创build一个二维数组,其中表中的每一行将代表关于单个列表视图项目的信息。
但我不能这样做。 我收到一个错误:
无法使用2D数组parsing
super(android.app.Activity, int, java.lang.String[][])
我如何解决这个问题?
经过很长一段时间,我find了解决办法。 我创build了一个单独的类来存储每个单独的行的数据值,并创build了一个相同的对象数组 。
这里是示例代码:
import android.app.Activity; import android.widget.ArrayAdapter; class ListItem { public String textview1; public String textview2; public String textview3; public int imageId; public ListItem(String t1, String t2, String t3, int imageId) { this.textview1 = t1; this.textview2 = t2; this.textview3 = t3; this.imageId = imageId; } } public class CustomList extends ArrayAdapter<Object> { private Activity context; private ListItem listItem[]; public CustomList(Activity context, ListItem li[]) { super(context, R.layout.rowlayout, li); } }
创build一个模型类(单独),其中包含所有需要的三个字段。 然后在您的活动中创buildarraylist并添加项目。 将这个数组列表传递给适配器。