2012-03-18 63 views
0

我需要你的帮助,因为我可能没有很好地理解它。将值分配给列表<String[]>

这个List<String[]> dataList定义了一个带有字符串数组的列表,对吧? 因此,可以说,我有这样的价值观:

info[0], info[1], name[0],name[1] 

我怎样才能将它们分配到上面的列表,通过指数分组?我的意思是信息[0]是名称[0],依此类推。我想这是因为后来在我的代码,我会用这个:

public FacilitiesAdapter (List<String[]> dataList) { 
     this.dataList = dataList; 
    } 

,我需要我的数据列表有每一行中,我想要的数据。我了解错了什么?

回答

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]}); 
     } 
4

将其定义为一类:

public class MyData { 
    public String info; 
    public String name; 
} 

然后,你必须:

List<MyData> mDatalist; 

public FacilitiesAdapter (List<MyData> dataList) { 
    this.mDataList = dataList; 
} 
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]}); 
} 
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]}); 

然而,卡尔文的回答是灵活性更好。如果你想稍后添加一个额外的字段,如果你已经创建了你自己的类而不是使用一个字符串数组,那么将会更容易。

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); 
} 

打印在你的适配器

public View getView(int position, View convertView, ViewGroup parent) { 
    String[] item = datalist.get(position); 
    String name = item[0]; 
    String info = item[1]; 
} 
0

如果多种数据类型绑定到一个独特的数据总是使用数据的封装

for (int i = 0; i < dataList.size(); i++) { 
    Log.d("TAG", "item " + i + 
      " name:" + dataList.get(i)[0] + 
      " info:" + dataList.get(i)[1]); 
} 

使用。加尔文的方法是最合适和高度灵活的。