0

我正在尝试将 ArrayList<int[]> 传递给数组适配器。每个 int 数组包含 6 个值,我希望这些值出现在列表视图的每一行中。有没有办法使用标准阵列适配器来做到这一点,或者我需要为此创建一个自定义适配器?

4

1 回答 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 回答