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

标签 android android-layout

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

我可以获得一个 ListView,使用默认 View 之一,通过将其分解为单个值数组并使用 ArrayAdapter<String> 来显示数组中仅单个项目的完整列表。 ,但我不知道如何为 ListView 布局中的多行执行此操作。

非常感谢任何帮助。

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

感谢您的任何建议。

最佳答案

您应该创建自己的 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() 方法。

关于android - 如何使用数组列表中的数据填充自定义布局 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8446167/

相关文章:

android - 页脚和页眉未添加到 android ListView - 错误修复

Android 自定义阵列适配器未运行

android - 在 cardview 中对齐项目

android - 在 Samsung Galaxy 设备上选择图像旋转

android - 调用移植库的本地函数

android - 抽屉导航主页图标未恢复为汉堡包图标

android - 我必须使用哪种布局来制作如下所示的设计

安卓下载远程内容

Android 工具栏 TextView match_parent 变得比屏幕大

Android:获取实际屏幕尺寸