我有下面的循环创建了一个完全符合屏幕的字符串,它创建了一个可以说话的页面。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