将int数组的arraylist传递给数组适配器

时间:2013-11-05 00:25:03

标签: android android-listview android-arrayadapter

我正在尝试传递一个ArrayList< int []>到一个数组适配器。每个int数组包含6个值,我希望这些值出现在listview的每一行上。有没有办法使用标准阵列适配器执行此操作,还是需要为此创建自定义适配器?

1 个答案:

答案 0 :(得分:1)

你必须采取不同的行动。

the docs for 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
        }