我有一个存储名称和昵称的getter和setter类。
我将输入EditText字段的文本存储到字符串中,并将我的setter方法设置为一个Activity中的该字符串。
Person personInfo = new Person();
String storeName = text.getText().toString();
personInfo.setName(storeName);
将其放入一个活动的onCreate方法中。
然后在另一个活动中,我想从setter中获取名称,但它一直返回null。
TextView name;
Person personInfo;
public void onCreate(Bundle savedInstanceState){
name = (TextView) findViewById(R.id.name);
name.setText(personInfo.getName());
}
帮助将不胜感激。感谢
答案 0 :(得分:0)
Person personInfo;
public void onCreate(Bundle savedInstanceState){
name = (TextView) findViewById(R.id.name);
name.setText(personInfo.getName());
}
此代码段的第1行声明personInfo
,您永远不会初始化其中的任何内容。您需要使用Intent将personInfo
从活动1发送到活动2。 (您必须创建一个新的Person
对象,并根据意图中发送的数据对其进行初始化,除非您要使用Person
类模型设置singleton
。)
答案 1 :(得分:0)
使用意图将personInfo对象从活动1传递到第二个,然后尝试访问。
答案 2 :(得分:0)
如果你想使用getter和setter,这是一个很好的方法。
PersonFactory factory;
Person person;
public PersonFactory getInstance(){
if(factory == null){
factory = new PersonFactory();
}
return factory;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
您可以在Activity1中设置值
Person personInfo = new Person();
String storeName = text.getText().toString();
personInfo.setName(storeName);
PersonFactory.getInstance().setPerson(personInfo);
并像这样在Activity2中获取值。
TextView name;
Person personInfo;
public void onCreate(Bundle savedInstanceState){
name = (TextView) findViewById(R.id.name);
name.setText(PersonFactory.getInstance().getPerson().getName());
}