我有下面的循環創建了一個完全符合屏幕的字符串,它創建了一個可以說話的頁面。ArrayList在do..while循環中沒有像預期的那樣工作
for (int i = 0; i < totalLine; i++) {
temp = enterLine(mTextView, textToBeShown, i);
full = full + temp;
}
所以在迭代完成後full
保存一頁。
我想要做的是創建一個外迭代,它允許我創建多個頁面,但未定義要創建的頁面數量。所以如果沒有更多的頁面被創建,迭代需要停止。
我試了下面的代碼,但由於某種原因,當調用頁面Pages.get(1)
它給出了整個字符串,不僅僅是full
/Page。例如,如果我已將三個字符串添加到ArrayList
頁面,則ArrayList
中將有三個字符串,但所有字符串都具有相同的值。
隨着一些測試與Log
,我知道第一次迭代運作良好,而且full
給出的預期值在第一do
迭代意味着給出的預期值到full
正因爲此,在第二次迭代等。
do{
for (int i = 0; i < totalLine; i++) {
temp = enterLine(mTextView, textToBeShown, i);
if(temp.trim().length() == 0){
break;
}else{
full = full + temp;
}
}
Pages.add(full);
所以,問題是我在做什麼毛病ArrayList
爲什麼是不是工作,我很期待。
編輯
這是enterLine
代碼:更多Log
的使用並沒有覺得有必要顯示它們。
public String enterLine(TextView mTextView, String textBeShown, int i){
String A;
int number = mTextView.getPaint().breakText(textToBeShown, 0, textToBeShown.length(),true,mTextView.getWidth(), null);
if(textToBeShown.substring(number-1,number) != " "){
number = textToBeShown.substring(0,number).lastIndexOf(" ");
Log.e("TAG1", "Found " + i);
}
A = (textToBeShown.substring(0, number) + "\n");
Log.e(TAG, textToBeShown.substring(0, number));
textToBeShown = textToBeShown.substring(number, textToBeShown.length());
return A;
}
職位'enterLine'的代碼,不知道是什麼做...... – 2013-04-25 14:56:31
我會的,但'enterLine'正常工作,altough它可以連接到它。 – SitRock 2013-04-25 14:58:52
你需要在某處重新初始化'full'到一個空值,不是嗎?你繼續填充它。在「做」和「爲了」之前重置它會是一個好主意嗎? – 2013-04-25 15:04:20