2017-01-10 97 views
0

我一直堅持這段代碼。 我想用自定義適配器建立一個列表視圖。如何在Arrays.asList中使用for循環()

List<Data> list = Arrays.asList(

      new Data(910000, "Name", "Address", 59855, "City", "Tel", "Coms", -8860075), 
      new Data(958568, "Name 2", "My home", 985, "Somewhere","Tel", "", -8860075), 
      new Data(058460, "Name 3", "my work", 2584, "There", "Tel", "", -8860075) 
    ); 

現在,我已經預定3項目: 我從SharedPreferences

的代碼工作中讀取數據。 但是用戶會增加更多的訂單,我不知道總數(準確的說,我會將數據總數保存在sharedpreferences中,稍後我會閱讀它們)

我怎樣才能添加一個for循環在Arrays.asList裏面?

+1

是不是隻是創建列表,然後逐個從for循環添加到列表?爲什麼只使用asList,爲什麼不只是添加? – amalBit

+0

也許我迷失在如何做到這一點。我試了幾種方法,但沒有運氣 –

回答

0
List<Data> list = new ArrayList<>(); 
    Data data1 = new Data(910000, "Name", "Address", 59855, "City", "Tel", "Coms", -8860075); 
    Data data2 = new Data(958568, "Name 2", "My home", 985, "Somewhere","Tel", "", -8860075); 
    list.add(data1); 
    list.add(data2); 

每當你得到新的數據來創建新的數據對象並添加到列表

+0

你好,這工作得很好!非常感謝你! 但是爲了理解你做什麼,爲了知道如何在將來更好地工作,爲什麼要使用ArrayList?這與Arrays.asList是一樣的嗎? –

+0

Arrays.asList將數組轉換爲列表。現在問題出現在array和arraylist之間有什麼區別(http://javahungry.blogspot.com/2015/03/difference-between-array-and-arraylist-in-java-example.html)。要創建一個對象數組,你需要給出數組的大小。假設你給定的大小爲10,你想添加第11個元素,你將如何做到這一點。這裏深拷貝和淺拷貝進入圖片。 Arraylist是一個包含更多實用功能的數組的包裝器。請深入瞭解Java集合,還請檢查Arraylist源代碼以獲取深層次的代碼 – Praveen

0

首先創建一個列表:

List<Data> list = new Arraylist<Data>(); 

當過你的用戶增加了somethig到列表它添加到陣列中:

list.add(new Data(910000, "Name", "Address", 59855, "City", "Tel", "Coms", -8860075)) 
0

這裏是我對這個問題的理解。

1)您的共享首選項中有預定義的數據。

2)你想將數據轉換爲對象的列表(比如聯繫人數據)。

我的建議是,利用SharedPreferences的GETALL方法。

Map<String, Data> contacts = sharedPreferences.getAll(); 

List<Data> contactsList = new ArrayList<>(); 

for(String contact: contacts.keySet()) { 
    contactsList.add(contacts.get(contact)); 
} 

//Process your list now in whatever way you want. 

希望這會有所幫助。