0

我有一个存储名称和昵称的 getter 和 setter 类。

我将输入到 EditText 字段中的文本存储到一个字符串中,并在一个 Activity 中将我的 setter 方法设置为该字符串。

Person personInfo = new Person();
 String storeName = text.getText().toString();
        personInfo.setName(storeName);

这被放入一个活动的 onCreate 方法中。

然后在另一个活动中,我想从设置器中获取名称,但它一直返回 null。

TextView name;
Person personInfo;
public void onCreate(Bundle savedInstanceState){
        name = (TextView) findViewById(R.id.name);
                name.setText(personInfo.getName()); 
}

帮助将不胜感激。谢谢

4

3 回答 3

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()); 
}
于 2013-11-01T03:21:19.897 回答
0

使用意图将 personInfo 对象从活动传递到第二个,然后尝试访问。

于 2013-11-01T02:49:32.887 回答
0
Person personInfo;
public void onCreate(Bundle savedInstanceState){
    name = (TextView) findViewById(R.id.name);
            name.setText(personInfo.getName()); 
}

该片段的第 1 行声明了personInfo,并且您从不初始化其中的任何内容。您需要personInfo使用意图从 Activity 1 发送到 Activity 2 的其他方式。Person(除非您想Person使用singleton类模型进行设置,否则您必须创建一个新对象并根据意图中发送的数据对其进行初始化。)

于 2013-11-01T02:49:15.203 回答