2015-01-21 116 views
0

通过列表循环和创建视图,我目前有两个列表:依赖于数据

List<String> listUserAnswers = splitWords(answer); 
List<String> listRealAnswers = splitWords(realAnswer); 

我的主要目标是遍历这些,并创建依赖于数据不同的看法。例如,对于每个correctAnswer,我将创建一种视图,并针对incorrectAnswer创建另一个视图。

我再穿过两个列表循环:

for (String userAnswer : listUserAnswers) { 
     for (String realAnswer : listRealAnswers) { 
      if (userAnswer.equals(realAnswer)) { 
       correctLayout = createCorrectView(userAnswer); 
       newCorrectViews.add(correctLayout); 
      } else { 
       incorrectLayout = createIncorrectView(userAnswer); 
       newIncorrectViews.add(incorrectLayout); 
      } 
     } 
    } 

然后我检查userAnswer匹配realAnswer,然后创建视图。

不过,我遇到的问题是,如果realAnswer是:

[This, Is, The, Real, Answer] 

和用户输入:

[This, Is, Real] 

随后的前两个单词应显示在屏幕上是正确的,而'真实'这个词不正确。

然而,什么是实际发生的情况是:

[This, Is, This, This, Is, Is, Real, Real] - >其中[This, Is]是正确的,其余都标记为不正确。

任何想法?

回答

1

你不应该有一个内部循环。你只需要一个循环,所以不要使用增强。

您可以使用类似:

minSize = listUserAnswers.size() > listRealAnswers.size() ? listUserAnswers.size() : listRealAnswers.size(); 
for(int i = 0; i < minSize; i++) 
    String userAnswer = listUserAnswers.get(i); 
    String realAnswer = listRealAnswers.get(i); 
    if(userAnswer.equals(realAnswer)) 
    .... 

刚刚检查在同一位置的实际的话。

+0

好啊,这样做很有道理!干杯:) – 2015-01-21 10:23:18