2015-10-15 88 views
0

我有:TextView中不會增加新的線路

class ccProfile{ 
    private String issuer, name, cardnum, expire; 
    private Double bal, limit; 
    //getters and setters 
在creditCard.java

。在我的主要活動中,我使用了一個switch語句來將它們全部從我擁有的數組中進行設置。我試着將它們全部打印到一個TextView,但我似乎無法讓他們打印個別行....

設定數據的

例子:

ccProfile ccObj1 = new ccProfile(); 
// . . . . . . . . 
case 2: 
    ccObj1.setCardnum(data[z]); 
    z++; 
    break; 

下面是我m打印:

tv1.setText(ccObj1.getIssuer() + "\n"); 
tv1.setText(ccObj1.getName()+"\n"); 
tv1.setText(ccObj1.getCardnum()+"\n"); 
tv1.setText(ccObj1.getExpire()+"\n"); 
sD = Double.toString(ccObj1.getBal()); 
tv1.setText(sD+"\n"); 
sD = Double.toString(ccObj1.getLimit()); 
tv1.setText(sD+"\n"); 

它所做的全部是打印最後一個值,給出了什麼?

+0

的setText()清除的TextView的價值,不管你提供的參數來替換它。 – geokavel

+0

謝謝,我應該知道...有沒有更好的方法來做到這一點? – royalflush5

回答

1

您正在使用setText()設置新文本並替換任何現有文本。它會在每次通話時覆蓋您的文字。您正在尋找附加文本的append()

+0

得到它的工作。謝謝:) – royalflush5

1

每次調用setText()時,您都在擦除之前存在的內容。如果你想TextView的值設置爲所有字符串的嘗試使用一個StringBuilder

StringBuilder sb = new StringBuilder(); 
sb.append("string 1 \n"); 
sb.append("string 2"); 
tv1.setText(sb.toString()); 
+0

整潔,以前沒有用過,謝謝! – royalflush5

0

的setText()覆蓋您的文本區域的所有以前的內容。

tv1.setText(ccObj1.getIssuer() + "\n" 
     +ccObj1.getName()+"\n" 
     +ccObj1.getCardnum()+"\n" 
     +ccObj1.getExpire()+"\n" 
     +Double.toString(ccObj1.getBal())+"\n" 
     +Double.toString(ccObj1.getLimit()+"\n"); 

會給你想要的結果