2016-04-01 9 views
0
ArrayListの

からデータを取得するために、2つのレコードがあります。ここでは は私のArrayListが含まれてい

Item 1 

Item 2 

が、私はこれらのレコードを取得するために使用していたループであるが

String global = null; 

for(int i=0; i<arrayList.size(); i++) { 
    String name = arrayList.get(i).getName().toString(); 
} 

global = global+name+", "; 
Log.d("items:", global); 

出力:

D/items:: nullItem 2, 

私が期待していたのですが、

Item 1, Item 2 
空の文字列の代わりに、nullにグローバル
+1

は+グローバル= 'グローバルやろう "" + arrayList.get(I).getName( ).toString(); 'ループ内 –

+1

皆さん、ありがとうございました。それぞれの答えをすべて有効にしてくれました...可能であれば、私の質問をアップしてください..実際に私はなぜそれがdownvotedされたのか分かりません。 – Oreo

答えて

1

初期化文字列。 nullと文字列オブジェクトの間で連結を行うべきではありません。

String global =""; 
global = global +"item"; // global is now item; 

名前の変数がループ内で反復ごとに上書きされるようにしても、あなたはその範囲外の名前の変数にアクセスしようとしている、ループ内でグローバル変数を変更し

String global = null; 
global = global + "item"; // treated as "null" + "item" 

をnullにグローバルinitalize場合ループ外の名前を宣言します。

for(int i=0; i<arrayList.size(); i++) { 
    String name = arrayList.get(i).getName().toString(); 
    global = global+name+", "; 
} 
1
StringBuilder global = new StringBuilder(); 

for(int i=0; i<arrayList.size(); i++) { 
    global.append(arrayList.get(i).getName().toString()); 
} 

Log.d("items:", global.toString()); 
+1

' global.append ( "、" + arrayList.get(i).getName()。toString()); ' –

1
String global = ""; 

for(int i=0; i<arrayList.size(); i++) { 
    global+ = arrayList.get(i).getName().toString(); 
} 

Log.d("items:", global); 
1

あなたはループインデックスを管理することを避けるためにfor各ループを使用することができます。

StringBuilder global = new StringBuilder(); 
for (Yourclass object : arrayList) { 
    global.append(object.getName().toString()); 
} 
Log.d("Items: ", global); 
関連する問題