Java 如何添加数据加载项列表<;对象>;android中的项目
我是一名新的android开发者。我正在开发一个示例应用程序。我想在对象列表中添加一些数据 My MainActivity.java类代码:Java 如何添加数据加载项列表<;对象>;android中的项目,java,android,Java,Android,我是一名新的android开发者。我正在开发一个示例应用程序。我想在对象列表中添加一些数据 My MainActivity.java类代码: public class MainActivity extends Activity { private PersonalInfo item; private List<PersonalInfo> itemList = new ArrayList<PersonalInfo>(); @Override protected void
public class MainActivity extends Activity {
private PersonalInfo item;
private List<PersonalInfo> itemList = new ArrayList<PersonalInfo>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for (int i = 0; i < 5; i++) {
item.setFirstName("AA::" + i);
item.setLastName("BB::" + i);
item.setAddress("New City " + i);
item.setSex("Male");
itemList.add(item);
item = new PersonalInfo();
}
for(PersonalInfo p:itemList){
System.out.println("First Name::"+p.getFirstName());
System.out.println("Last Name::"+p.getLastName());
}
}
}
public class PersonalInfo {
private String firstName;
private String lastName;
private String address;
private String sex;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
当我运行它时,则显示流动错误
谢谢您的帮助。也请更改此循环
for (int i = 0; i < 5; i++) {
item = new PersonalInfo(); // line1
item.setFirstName("AA::" + i);
item.setLastName("BB::" + i);
item.setAddress("New City " + i);
item.setSex("Male");
itemList.add(item);
}
for (PersonalInfo p : itemList) {
System.out.println("First Name::" + p.getFirstName());
System.out.println("Last Name::" + p.getLastName());
}
for(int i=0;i<5;i++){
item=new PersonalInfo();//第1行
项目.setFirstName(“AA::”+i);
item.setLastName(“BB::”+i);
项目.设置地址(“新城”+i);
项目.固定汇率(“公”);
项目列表。添加(项目);
}
用于(个人信息p:itemList){
System.out.println(“名字::”+p.getFirstName());
System.out.println(“姓氏::”+p.getLastName());
}
问题出在Line1
:不创建对象就无法将值插入到对象中。因此,必须首先创建对象,然后初始化其属性 问题在于:
for (int i = 0; i < 5; i++) {
item.setFirstName("AA::" + i); <-- error happened here because item is null
item.setLastName("BB::" + i);
item.setAddress("New City " + i);
item.setSex("Male");
itemList.add(item);
item = new PersonalInfo();
}
你只需要新建一个PersonalInfo实例
像这样:
for (int i = 0; i < 5; i++) {
item = new PersonalInfo(); <-- I've moved this line
item.setFirstName("AA::" + i);
item.setLastName("BB::" + i);
item.setAddress("New City " + i);
item.setSex("Male");
itemList.add(item);
}
for(int i=0;i<5;i++){
item=新的PersonalInfo();创建item变量的新实例,然后将另一项设置为它,您必须在for语句中创建新实例,然后再设置任何内容。您确定列表的大小始终为5吗?可能OP将其设置为5只是为了测试,所以使用数组不合适,正如我在回答中所说,初始化行是个问题,所以不需要将列表更改为array@sHayan Pourvatan此更改可接受吗?我们可以使用count变量更改大小。为什么不使用List?此解决方案仅适用于固定大小。@Shayan Pourvatan我明白你的意思,此编辑可接受吗?提前谢谢。这真的很有帮助。但请你解释一下为什么我们每次在循环中都需要重新初始化它。@gaurav4sarma按引用调用问题,如果您不在循环中初始化,则每次更改一个实例,因为您的列表项指向对象的引用,所有项都更改为最后一项。如果还不清楚,请告诉我解释更多。我明白了,很抱歉错过了@shayan的一个主要小细节
for (int i = 0; i < 5; i++) {
item = new PersonalInfo(); <-- I've moved this line
item.setFirstName("AA::" + i);
item.setLastName("BB::" + i);
item.setAddress("New City " + i);
item.setSex("Male");
itemList.add(item);
}