我有一些使用一些按钮和ListView小部件定义的布局。我还为ListView中的每一行定义了一个布局xml,带有2个TextView。我还有List<String[]>
格式的数据,其中String[]
填充了3个项目。我想在ListView中显示数据,其中String数组中的3个项中的2个(包含在列表的每个元素中)分配给ListView布局中的一个TextView行。
我可以使用其中一个默认视图获取ListView,只显示数组中单个项目的完整列表,将其分解为单个数组,并使用ArrayAdapter<String>
,但是我不知道如何在ListView布局中为多行做到这一点。
非常感谢任何帮助。
此外,如果原始List<String[]>
列表中的数据应该更改,我该如何刷新ListView小部件?
感谢您的任何建议。
答案 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)
我认为此链接对您有帮助