2016-10-14 14 views
0

사용자 정의 배열의 요소를 String에 넣으려고합니다. 하지만 그것을 반복하려고하면 마지막 항목 만 인쇄됩니다. 이것은 작업의 완료 여부에 따라 작업의 이름과 1 또는 0 중 하나가 있어야하는 완료 자 앱용입니다.사용자 정의 arrayList의 요소를 문자열로 복사

Entry.java

public class Entry { 
String S; 
boolean b; 
public Entry(String S, boolean b) { 
    this.S = S; 
    this.b = b; 
} 
public String getS() { 
    return S; 
} 

public void setS(String S) { 
    this.S = S; 
} 

public void setB(boolean b) { 
    this.b = b; 
} 

public boolean isB() { 
    return b; 
} 

}

MainActivity.java

ArrayList<Entry> mEntries; 
String copy; 
String name1; 
int i; 
public String getShareData() { 

    for (Entry n : mEntries) { 
     name1 = n.getS(); 
     i = boolToInt(n.isB()); 
     copy = name1 + "\t" + i + "\n"; 
    } 
    return copy; 
} 

public int boolToInt(boolean b) { 
    return b ? 1 : 0; 
} 
+0

아래 그것은 마지막 항목을 인쇄하는 것처럼 사용할 수 있습니다. 무엇을하고 싶니? – shmosel

답변

0

당신이 overwrit 때문이다 :

이 지금까지 코드는 각 항목에 대한 변수를 입력하고 마지막 요소 만 유지합니다. 귀하의 코드에 추가 한 내용은 문자열 복사본의 끝에 각 항목을 추가합니다.

ArrayList<Entry> mEntries; 
String copy; 
String name1; 
int i; 
public String getShareData() { 
    copy = ""; 
    for (Entry n : mEntries) { 
     name1 = n.getS(); 
     i = boolToInt(n.isB()); 
     copy += name1 + "\t" + i + "\n"; 
    } 
    return copy; 
} 

public int boolToInt(boolean b) { 
    return b ? 1 : 0; 
} 
+0

감사합니다. 그게 내 바보 야. P – codelover

+0

도움이된다면 정확한 답을 표시해라. :) – diegowc

0

당신은 당신이 그것을 이야기하기 때문에

public String getShareData() { 
     copy=""; 
     for (Entry n : mEntries) { 
      name1 = n.getS(); 
      i = boolToInt(n.isB()); 
      if(copy.length()==0) 
       copy = name1 + "\t" + i + "\n"; 
      else 
       copy = copy + name1 + "\t" + i + "\n"; 
     } 
     return copy; 
    } 
관련 문제