2014-08-29 140 views
0

我有一個arrayadapter.I可以添加項目到這個arrayadapter,但有時我需要在這個adapter.I更新一個項目。我研究了互聯網,並找不到任何關於更新特定項目的適配器然後我做了這樣的:更新arrayadapter中的項目

Integer test=randomAdapter.getPosition(user); 
randomAdapter.remove(user); 
randomAdapter.insert(updated_user,test); 
randomAdapter.notifyDataSetChanged(); 

在此代碼user是jsonobject.I正在此項目的位置,然後我刪除它並添加uptated用戶數據到老對象position.This似乎works.But我不知道這是更新項目的好主意,所以我在問你。

如果這是一個壞主意,應該怎麼做?

回答

1

ArrayAdapter保留對其使用的對象的數組或List的引用。諸如add(...),remove(...)insert(...)之類的任何方法都直接作用於數組/列表,並且還使用​​語句使它們成爲線程安全的。

你的方法看起來有點囉嗦,但它和其他任何方式一樣安全。當然,您可以自己操作原始數組/列表,但如果您需要線程安全性,則必須將同步添加到您自己的代碼中。爲什麼重新發明輪子?

如果你想看看源代碼ArrayAdapterhere

+0

我不知道什麼是同步的語句,但如果我的方法是安全的,我會用這個method.Thank你 – 2014-08-30 09:28:42

+1

@TolgayToklar:在Google上搜索「Java同步」。這是一種創建同步方法或語句的方式,可以「鎖定」並防止多個'Thread'同時執行相同的操作。您的代碼以安全的方式工作,我無法看到它的問題。 – Squonk 2014-08-30 09:37:35