我正在尝试传递一个ArrayList< int []>到一个数组适配器。每个int数组包含6个值,我希望这些值出现在listview的每一行上。有没有办法使用标准阵列适配器执行此操作,还是需要为此创建自定义适配器?
答案 0 :(得分:1)
你必须采取不同的行动。
但是引用了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
}