Android:如何使用textview.setText(getter)将TextView设置为getter方法

时间:2013-11-01 02:45:49

标签: android textview android-edittext

我有一个存储名称和昵称的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()); 
}

帮助将不胜感激。感谢

3 个答案:

答案 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()); 
}