我需要你的帮助,因为我可能不太了解它。
这个List<String[]> dataList
定义了一个包含字符串数组的列表,对吧?
所以我要说我有这个值:
info[0], info[1], name[0],name[1]
如何将它们分配到上面的列表,按索引分组?我的意思是info [0]是名字[0],依此类推。我想这是因为稍后在我的代码中我将使用它:
public FacilitiesAdapter (List<String[]> dataList) {
this.dataList = dataList;
}
我需要我的datalist在每一行中都有我想要的数据。我理解错了吗?
答案 0 :(得分:4)
将其定义为一个类:
public class MyData {
public String info;
public String name;
}
然后你有:
List<MyData> mDatalist;
public FacilitiesAdapter (List<MyData> dataList) {
this.mDataList = dataList;
}
答案 1 :(得分:1)
这样的东西?
List<String[]> dataList = new ArrayList<String[]>();
String name[] = new String[]{"n1","n2"};
String info[] = new String[]{"i1","i2"};
for(int i=0;i<name.length;i++)
{
dataList.add(new String[]{name[i],info[i]});
}
答案 2 :(得分:0)
这有帮助吗?
public void arrayLearning(){
List<String[]> dataList = new ArrayList<String[]>();
String[] info = {"first info", "second info"};
String[] name = {"first name", "second name"};
dataList.add(new String[]{info[0], name[0]});
dataList.add(new String[]{info[1], name[1]});
}
答案 3 :(得分:0)
你可以这样做:
List<String[]> dataList = new List<String[]>();
int len = info.length;
for (int i = 0; i < len; i++)
dataList.add(new String[] {name[i], info[i]});
然而,凯文的答案更适合灵活性。如果您想稍后添加一个额外的字段,如果您已经创建了自己的类而不是使用String数组,那将会更容易。
答案 4 :(得分:0)
创建列表
String[] name = new String[] { "name1", "name2" };
String[] info = new String[] { "info1", "info2" };
List<String[]> dataList = new ArrayList<String[]>();
for (int i = 0; i < name.length; i++) {
String[] item = new String[2];
item[0] = name[i];
// info and name must have the same size or you need some checks here
item[1] = info[i];
dataList.add(item);
}
打印
for (int i = 0; i < dataList.size(); i++) {
Log.d("TAG", "item " + i +
" name:" + dataList.get(i)[0] +
" info:" + dataList.get(i)[1]);
}
在您的适配器中使用
public View getView(int position, View convertView, ViewGroup parent) {
String[] item = datalist.get(position);
String name = item[0];
String info = item[1];
}
答案 5 :(得分:0)
如果多个数据类型绑定到一个唯一数据,则始终使用数据封装。凯文的方法是最适合和高度灵活的方法。