我对Android开发很陌生,我想要做的是在ArrayList
中显示TextView
的内容。
我一直在尝试将ArrayList
转换为Array
,然后将每个项目附加到StringBuilder
。但是,StringBuilder
似乎不允许我在Object
附加Array
。谁能告诉我为什么,或者实际上提供更好的解决方案?
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());
}
非常感谢提前。
答案 0 :(得分:1)
将您的sBuilder附加行更改为:
sBuilder.append(obj[i].toString());
这样你就不会尝试将Object转换为String,而是获取Object的String表示。
答案 1 :(得分:1)
1。我没有了解您转换 ArrayList to Array
的理由。
2。以这种方式尝试... 我直接将ArrayList中的String附加到StringBuilder,使用For-Each循环
<强>例如强>
for (String te : temp){
sBuilder.append(te);
}
答案 2 :(得分: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());
}