[問題] OnCreate() 無法對物件初始化

作者: wa007123456 (大笨羊)   2014-05-28 18:20:03
大家好 小弟剛學Android兩天
現在只了解了一些皮毛的基本概念
但我想問一下
我在OnCreate寫了這段程式:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sname=(EditText)findViewById(R.id.surName); //初始化物件
fname=(EditText)findViewById(R.id.firstName); //初始化物件
phone=(EditText)findViewById(R.id.phone); //初始化物件
txv=(TextView)findViewById(R.id.txv); //初始化物件
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
然後 又在MainActivity類別新增了一個方法
public void On(View v){
txv.setText(sname.getText().toString()+fname.getText()+"的電話是"+
phone.getText());
}
我四個物件 都是在類別的範疇裡面 (sname txv fname phone)
但是我發現 只要我使用了On函式 就會當掉
Debug的結果是因為那四個物件的參照是null
後來我又把初始化的過程放到On()方法裡面
就可以執行了
所以我想問 OnCreate 是否不能進行物件的初始化呢?
感謝各位前輩的回答
作者: givemepass (λ)   2014-05-28 19:47:00
在哪使用on
作者: cooper6334 (庫波)   2014-05-29 03:21:00
跟#1JX49FxT一樣,要先setContentView才能findViewByID看起來應該是在onCreate之前就先call On了剛沒看清楚,你onCreate本身應該是正常的
作者: visor (~~~~~~~~~~)   2014-05-30 14:55:00
你那四個物件應該在 R.id.container 裡面吧 ?把那四個初始化動作移到 fragment 後面試試看

Links booklink

Contact Us: admin [ a t ] ucptt.com