循环遍历Android列表

23

我有以下方法:

 public List<String> getAllValue(){
       List<String> list = new ArrayList<String>();
       if(pref.getString(KEY_NUMBER1 , "").length()>2)
           list.add(pref.getString(KEY_NUMBER1 , ""));
       if(pref.getString(KEY_NUMBER2 , "").length()>2)
           list.add(pref.getString(KEY_NUMBER2 , ""));
       if(pref.getString(KEY_NUMBER3 , "").length()>2)
           list.add(pref.getString(KEY_NUMBER3 , ""));
       if(pref.getString(KEY_NUMBER4 , "").length()>2)
           list.add(pref.getString(KEY_NUMBER4 , ""));
       if(pref.getString(KEY_NUMBER5 , "").length()>2)
           list.add(pref.getString(KEY_NUMBER5 , ""));

       return list;
   }

我现在需要做的是将这些数字(例如KEY_NUMBER1)分配给以下的editTexts

EditText phoneNumber1, phoneNumber2, phoneNumber3, phoneNumber4, phoneNumber5;

由于我刚接触列表,很难想出一种方法来循环并给这些editText赋值,例如:

phoneNumber1.setText(KEY_NUMBER1);
phoneNumber2.setText(KEY_NUMBER2);
phoneNumber3.setText(KEY_NUMBER3);

list.get(0); list.get(1); 等将会给你索引为 0 和 1 的值。你可以循环遍历列表直到 size - Shobhit Puri
3个回答

39
假设 list 是从函数中返回的 List<String>,您可以像这样循环它:
for (int i=0; i<list.size(); i++) {
    System.out.println(list.get(i));
}

如果您知道项目数量是固定的(这里似乎是5),则可以直接使用索引来分配EditText:

phoneNumber1.setText(list.get(0));
phoneNumber2.setText(list.get(1));
//so on ...

我应该在列表内部完成phoneNumbers的分配吗?还是在外部完成...不要介意我问。 - Rakeeb Rajbhandari
抱歉,我想我明白了。谢谢 :) - Rakeeb Rajbhandari

2
for (E element : list) {
    . . .
}

2

KOTLIN:

val numbers = listOf("one", "two", "three", "four")
for (item in numbers) {
    println(item)
}

或者

val numbers = listOf("one", "two", "three", "four")
val numbersIterator = numbers.iterator()
while (numbersIterator.hasNext()) {
    println(numbersIterator.next())
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接