[问题] 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