0

我对 Android 开发很陌生,我想做的是ArrayListTextView.

我一直在尝试将 转换ArrayListArray,然后将每个项目附加到StringBuilder. 但是,StringBuilder似乎不允许我ObjectArray. 谁能告诉我为什么,或者实际上提供更好的解决方案?

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    ArrayList<String> temp = new ArrayList<String>();
    temp = data.getStringArrayListExtra("intentReturn");
    Object obj[] = temp.toArray();
    for(int i = 0; i < obj.length; i++){
        sBuilder.append((String)obj[i]); //This is the line which crashes the app
        if(i < obj.length - 1){
            sBuilder.append(", ");
        }
    }
    tvResult.setText(sBuilder.toString());
}

提前谢谢了。

4

3 回答 3

1

将您的 sBuilder 附加行更改为:

sBuilder.append(obj[i].toString());

这样您就不会尝试将对象转换为字符串,而是获取对象的字符串表示形式。

Object.toString() 的文档

于 2012-07-24T00:31:02.563 回答
1

1.明白你转换.ArrayList to Array

2.尝试这种方式...我直接将String从ArrayList附加到StringBuilder,使用For-Each循环

例如:

for (String te : temp){
    sBuilder.append(te);
}
于 2012-07-24T17:40:52.200 回答
0

显然我忘了添加StringBuilder sBuilder = new StringBuilder();- 愚蠢的新手!感谢 Jeffrey 也清理了他的代码,非常感谢!

为了提供足够的答案,这是我的新代码:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    StringBuilder sBuilder = new StringBuilder();
    ArrayList<String> temp = new ArrayList<String>();
    temp = data.getStringArrayListExtra("intentReturn");
    for(int i = 0; i < temp.size(); i++){
        sBuilder.append(temp.get(i).toString());
        if(i < temp.size() - 1){
            sBuilder.append(", ");
        }
    }
    tvResult.setText(sBuilder.toString());
}
于 2012-07-24T17:19:02.080 回答