0

私は Android 開発にかなり慣れていません。私がやろうとしているのは、 の内容ArrayListTextView.

を に変換してから、各項目を に追加しようとしArrayListましArrayStringBuilder。ただし、から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

1.変換する理由がわかりませんでした。ArrayList to Array

2.この方法で試してみてください... For-Each ループを使用して、ArrayList から StringBuilder に String を直接追加しています

例えば:

for (String te : temp){
    sBuilder.append(te);
}
于 2012-07-24T17:40:52.200 に答える
1

sBuilder の追加行を次のように変更します。

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

そうすれば、オブジェクトを文字列にキャストしようとするのではなく、オブジェクトの文字列表現を取得しようとします。

Object.toString() のドキュメント

于 2012-07-24T00:31:02.563 に答える
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 に答える