如何在Arraylist android中添加项目
我有模型(没有构造函数,有setter和getter)
private int user_id;
private String firstname;
private String lastname;
private String pic;
和我的代码
List<MeModel> meModels = new ArrayList<>();
meModels.clear();
meModels.get(0).setFirstname("Hello");
meModels.get(0).setLastname("World");
它不起作用。
如何添加此内容,谢谢!
答案 0 :(得分:4)
申请List#clear()
后会清空您的列表,这样您就无法再访问任何项目
List<MeModel> meModels = new ArrayList<>();
meModels.clear();
meModels.add(new MeModel(...));
// ^^^^^ add item
meModels.get(0).setFirstname("Hello"); // get item
meModels.get(0).setLastname("World");
答案 1 :(得分:1)
必须返回IndexOutOfBoundsException
。因为列表中没有项目。为什么不为模型创建构造函数?如果我是你,我会创建一个构造函数并执行以下操作:
Model model = new Model();
model.setBlahBlah(..);
meModels.add(model);
答案 2 :(得分:0)
根据Pavneet_Singh的建议,您必须首先添加一个项目然后才能访问它。喜欢这个
List<MeModel> meModels = new ArrayList<>();
meModels.clear();
meModels.add(new MeModel());
meModels.get(0).setFirstname("Hello");
meModels.get(0).setLastname("World");
无论如何,更高效的方法是首先对对象进行构造,然后将其添加到ArrayList
,如下所示:
List<MeModel> meModels = new ArrayList<>();
meModels.clear();
MeModel meMod = new MeModel()
meMod.setFirstname("Hello");
meMod.setLastname("World");
meModels.add(meMod);
这是因为您可以通过这种方式看到为每一行保存一个呼叫,即get(0)
。这似乎是一件愚蠢的事情,但是在一个大的迭代中,或者在一个旧的,功能较弱的设备上它可能很重要
答案 3 :(得分:0)
清除数据后,您如何访问该对象。 首先使用add()方法添加对象,然后可以访问这些模型