2017-01-10 49 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. 

希望这会有所帮助。