我有一个用一些按钮和一个 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/