【问题标题】:Binding multiple array into single list view in android在android中将多个数组绑定到单个列表视图中
【发布时间】:2015-04-15 09:00:08
【问题描述】:

我是 android 新手,我在 android 列表视图和数组中工作。我有某些字符串数组

try{
    String subString=colValue.text();
    String[] strArray1=subString.split("//certain regex");
    String[] strArray2=subString.split("//certain regex");
    String[] strArray3=subString.split("//certain regex");
    return strArray1;
}

我有这样的列表视图

@Override
    protected void onPostExecute(String[] result) {            
        ListView list=(ListView)findViewById(R.id.listShow);
        ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(getBaseContext(),android.R.layout.simple_list_item_1,result);
        list.setAdapter(arrayAdapter);
        mProgressDialog.dismiss();
    }

我的 listview.xml

<ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listShow"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/btnData" />

我已添加列表视图。但我无法访问string array variable

try{
       List<String> list = new ArrayList<String>(Arrays.asList(strArray1));
       list.addAll(Arrays.asList(strArray2));
       String [] outResult= (String[]) listString.toArray();
       return outResult;


        } catch (IOException e) {
            e.printStackTrace();
        }

如何将数组值绑定到单个列表视图中。帮我解决这个问题

【问题讨论】:

    标签: android arrays android-listview binding


    【解决方案1】:

    试试这个

    try{
                List<String> listString = new ArrayList<String>(Arrays.asList(resultArray));
                listString.addAll(Arrays.asList(resultArray1));
                String [] outResult= new String[listString.size()];
                int i=0;
                for(String str: listString){
                    outResult[i]=str;
                    i++;
                }
                return outResult;
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    

    【讨论】:

      【解决方案2】:

      如果我理解正确,您有数组strArray1strArray2strArray3,但只能弄清楚如何将其中一个传递给arrayAdapter。这是正确的吗?

      如果是这种情况,也许您可​​以将数组相互附加,这样您就只有一个数组 - 然后您可以将其传递给适配器?

      或者,您可以将数组作为List 返回,并创建一个接受字符串列表的Adapter

      编辑:我想象过这样的事情:

      try{
          String subString = colValue.text();
          List<String> entries = new List<String>();
          entries.addAll(subString.split("//certain regex"));
          entries.addAll(subString.split("//certain regex"));
          entries.addAll(subString.split("//certain regex"));
          return entries;
      }
      

      @Override
          protected void onPostExecute(List<String> result) {            
              ListView list = (ListView) findViewById(R.id.listShow);
              ListAdapter<String> listAdapter = new ListAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, result);
              list.setAdapter(listAdapter);
              mProgressDialog.dismiss();
          }
      

      【讨论】:

      • 那么哪个最好将所有数组附加在一起并传递给适配器或为每个列表制作一个适配器?
      • 我认为创建多个适配器没有意义。我的第一个选择是将数组彼此附加,这样你就有一个包含 strArray1 strArray2strArray3 的大数组
      • 也编辑了答案。我仍然不是一百,我们在同一页上,但看看吧。
      • 我刚刚将所有数组附加到 arraylist 中,然后转换为字符串数组 bcoz 使用返回变量作为 string[]
      • 这很公平。但是现在有什么问题呢?您将所有值作为字符串数组返回,然后将该数组传递给适配器。问题解决了吗?
      猜你喜欢
      • 2018-11-10
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多