2013-10-14 168 views
0

我有一個ListView陣列列表,具有未知數量的字符串元素。我想更改/修改這些字符串項目中的每一個。問題是,我不知道有多少項目,因爲用戶可以改變它。如何更改數組列表的每個字符串元素?

我有一個translate函數接受一個字符串並返回一個字符串。我想要做的是

arraylistelement1 = translate(arraylistelement1); 
arraylistelement2 = translate(arraylistelement2); 
... 

和重新填充listview ArrayList的新字符串。

這是怎麼回事?

+0

使用。 – nhaarman

+0

如何在不知道元素數量的情況下做到這一點? –

+0

類似於'(for int i = 0; i nhaarman

回答

2

迭代列表並從原始創建一個新的翻譯選項列表,然後用新值替換原始列表的內容。如果在迭代過程中進行替換,則會得到ConcurrentModificationExceptions。

+1

ArrayList temp = new ArrayList (); (字符串字符串:字符串){ temp.add(translate(string)); } strings = temp; – sddamico

+0

你能提供一個示例代碼嗎? –

+0

@MuratKaya他剛剛做到了! – Simon

1

使用ListIterator.set:for循環

public static void main(String[] args) { 
    List<String> list = new ArrayList<>(Arrays.asList("s0", "s1", "s2")); 

    ListIterator<String> iter = list.listIterator(); 

    while (iter.hasNext()) 
     iter.set(translate(iter.next())); 

    for (String element : list) 
     System.out.println(element); 
} 

public static String translate(String element) { 
    return element + " " + Math.random(); 
} 
相關問題