这是向 SimpleAdapter 添加 2 个数组的正确方法吗?

发布于 2024-11-18 02:01:37 字数 822 浏览 5 评论 0原文

我使用 SimpleAdapter 在 ListView 中显示 2 个字符串,一个在左侧,另一个在右侧,

这些字符串位于 2 个不同的数组中。数组 A 中的第一个和数组 B 中的第一个位于第一行,依此类推。

这是我使用的代码的一部分:

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

}

我确信有更好的方法来制作我想要的东西。正确的方法是什么?

I use SimpleAdapter to display 2 strings, one on the left and the other on the right, into a ListView,

The strings are in 2 different arrays. and 1st from array A with 1st in array B are in the 1st line, and so on..

Here is a part of the code I use:

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

}

I'm sure there is a better way to make what I want. What's the correct way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

简美 2024-11-25 02:01:37

不,这不是实现此目的的正确方法,我为您提供了一个链接,供您阅读 id 并了解实现它的想法。

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

No it is not a proper way to implementing this here i am given a link for you read id and get idea for implementing it.

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

左秋 2024-11-25 02:01:37

您可以使用 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]
     */
  }

You can use System.arraycopy to copy the contents of
To add two array

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

Two add muliple arrays

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]
     */
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文