我正在尝试将 ArrayList<int[]> 传递给数组适配器。每个 int 数组包含 6 个值,我希望这些值出现在列表视图的每一行中。有没有办法使用标准阵列适配器来做到这一点,或者我需要为此创建一个自定义适配器?
问问题
2025 次
1 回答
1
你将不得不做一些不同的事情。
作为注意的文档ArrayAdapter
:
然而,TextView 被引用,它将被数组中每个对象的 toString() 填充。您可以添加自定义对象的列表或数组。覆盖对象的 toString() 方法以确定将为列表中的项目显示哪些文本。
要使用除 TextViews 之外的其他内容来显示数组,例如 ImageViews,或者要让 toString() 结果之外的一些数据填充视图,请覆盖 getView(int, View, ViewGroup) 以返回所需的视图类型。
一些选项:
将您的列表转换为更适合显示的列表:
ArrayList<String> newList = new ArrayList<String>(); for (int[] i : yourList) { newList.add(Integer.toString(i[0]) + ...) };
创建一个更适合您的列表的自定义适配器:
public class MyAdapter extends ArrayAdapter { @Override public View getView (int position, View convertView, ViewGroup parent) { int[] i = getItem(position); // Inflate an appropriate layout and populate it with the ints in i }
于 2013-11-05T01:17:26.163 回答