作者wa007123456 (大笨羊)
看板AndroidDev
标题[问题] OnCreate() 无法对物件初始化
时间Wed May 28 18:20:03 2014
大家好 小弟刚学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 是否不能进行物件的初始化呢?
感谢各位前辈的回答
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.231.86.40
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1401272407.A.7F9.html
1F:推 givemepass:在哪使用on 05/28 19:47
Button 的 onclick 属性加上去的
2F:推 cooper6334:跟#1JX49FxT一样,要先setContentView才能findViewByID 05/29 03:21
3F:→ cooper6334:看起来应该是在onCreate之前就先call On了 05/29 03:22
4F:→ cooper6334:刚没看清楚,你onCreate本身应该是正常的 05/29 03:25
谢谢你:) 我知道这个 一定要等layout设定完成才能call id
※ 编辑: wa007123456 (61.231.89.5), 05/29/2014 14:44:48
5F:→ visor:你那四个物件应该在 R.id.container 里面吧 ? 05/30 14:55
6F:→ visor:把那四个初始化动作移到 fragment 後面试试看 05/30 14:56