Это правильный способ добавить 2 массива в SimpleAdapter - PullRequest
0 голосов
/ 01 июля 2011

Я использую SimpleAdapter для отображения 2 строк, одной слева, а другой справа, в ListView,

Строки находятся в 2 разных массивах. и 1-й из массива A с 1-м в массиве B в 1-й строке и т. д.

Вот часть кода, который я использую:

    String[] array= getResources().getStringArray(R.array.Names_List);

    int lengthtmp= array.length;
    for(int i=0;i<lengthtmp;i++)
    {
        counter++;
        AddToList(array[i]);            
    }

    adapter = new SimpleAdapter(this,list,R.layout.start_row,new String[] {"number","suraname"},new int[] {R.id.Start_Numbering,R.id.Start_Name});


   private void AddToList(String name) {
    HashMap<String,String> temp = new HashMap<String,String>();


    temp.put("number", Integer.toString(SortingPictures[counter-1]));

    temp.put("suraname", name);
    list.add(temp);

}

Я уверен, что есть лучший способ сделать то, что я хочу. Кто-нибудь может подсказать правильный путь?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 01 июля 2011

Вы можете использовать System.arraycopy для копирования содержимого
Для добавления двух массивов

int[] a = {1, 2};  
         int[] b = {3, 4};  

         int[] ab = new int[a.length + b.length];  

         System.arraycopy(a, 0, ab, 0, a.length);  
         System.arraycopy(b, 0, ab, a.length, b.length);  

Два сложенных множественных массива

public static String[] join(String [] ... parms) {
    // calculate size of target array
    int size = 0;
    for (String[] array : parms) {
      size += array.length;
    }

    String[] result = new String[size];

    int j = 0;
    for (String[] array : parms) {
      for (String s : array) {
        result[j++] = s;
      }
    }
    return result;
  }


  public static void main(String[] args) {
    String a[] = { "1", "2", "3" };
    String b[] = { "4", "5", "6" };
    String c[] = { "7", "8", "9" };

    String[] big = (String [])join(a,b,c);

    System.out.println(java.util.Arrays.toString(big));
    /*
     * output : 
     *    [1, 2, 3, 4, 5, 6, 7, 8, 9]
     */
  }
0 голосов
/ 01 июля 2011

Нет, это неправильный способ реализации здесь, мне дана ссылка для вас, чтобы прочитать id и получить идею для его реализации.

http://www.heikkitoivonen.net/blog/2009/02/15/multicolumn-listview-in-android/

Надеюсь, это вам пригодится.

...