2013-11-01 45 views
0

我有一個存儲名稱和暱稱的getter和setter類。Android:如何使用textview.setText(getter)將TextView設置爲getter方法

我將輸入到EditText字段中的文本存儲到一個字符串中,並將一個Activity中的setter方法設置爲該字符串。

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

如果你需要從一個活動獲得的東西到另一個,你要麼使用意圖通過該項目或將其存儲在'persistent'存儲和訪問後來.. –

回答

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

此代碼段的第1行聲明personInfo,並且您從不初始化任何內容。您需要使用意向將活動1發送到活動2的personInfo。 (你必須創建一個新的Person對象,並從意圖發送的數據初始化它,除非你要設置Person了與singleton類模型。)

+0

這是否意味着我不能使用getter和setters?我只是試圖找到一種方法來使用getter和setter來獲取信息。 – user2159166

+0

你可以使用getters和setter。在Activity 1中,使用'getter'從對象中獲取信息並將其放入目標並通過。在活動2中,要麼直接從意圖信息中設置文本視圖,要麼在意圖中使用信息來實例化該類別的另一個對象。 – nhgrif

+0

唯一的選擇是使用Singleton類模型,但在意圖中傳遞信息在大多數情況下可能要好得多。 – nhgrif

0

從活動傳遞personInfo對象之一,第二使用意圖然後嘗試訪問。

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; 
} 

您可以在活動1

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

設定值,並得到這樣的活性2的值。

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