如何使用数组列表中的数据填充自定义布局ListView

时间:2011-12-09 13:29:23

标签: android android-layout

我有一些使用一些按钮和ListView小部件定义的布局。我还为ListView中的每一行定义了一个布局xml,带有2个TextView。我还有List<String[]>格式的数据,其中String[]填充了3个项目。我想在ListView中显示数据,其中String数组中的3个项中的2个(包含在列表的每个元素中)分配给ListView布局中的一个TextView行。

我可以使用其中一个默认视图获取ListView,只显示数组中单个项目的完整列表,将其分解为单个数组,并使用ArrayAdapter<String>,但是我不知道如何在ListView布局中为多行做到这一点。

非常感谢任何帮助。

此外,如果原始List<String[]>列表中的数据应该更改,我该如何刷新ListView小部件?

感谢您的任何建议。

2 个答案:

答案 0 :(得分:1)

您应该创建自己的ArrayAdapter扩展名:

class MyAdapter extends ArrayAdapter<String[]>{
        public MyAdapter(Context context, int textViewResourceId, ArrayList<String[]> objects) {
            super(context, textViewResourceId, objects);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if( convertView== null ) convertView = getLayoutInflater().inflate(R.layout.your_layout, null);

            String[] strings = getItem(position);
            TextView line1 = (TextView)convertView.findViewById(R.id.line1);
            line1.setText(strings[0])
            TextView line2 = (TextView)convertView.findViewById(R.id.line2);
            line2.setText(strings[0])
            //...

            return convertView;
        }
    }

要刷新列表,请调用适配器notifyDataSetChanged()方法。

答案 1 :(得分:0)

我认为此链接对您有帮助

http://blog.ryanharter.com/?p=108