从google的网站上找到了开发者指南,
http://developer.android.com/index.html
根据上面的指导,做了个hello world的APP,还不错,正常加载到手机,启动、运行、显示hello world。
接下来是activity和intent的使用,按照指南添加了新的activity,并获取fragment_activity传来的消息进行显示,
按照指南,重写了onCreate方法,代码如下。
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
setContentView(textView);
}
传到手机上执行,总是有null pointer的错,看来google的这帮人,工作态度也是相当不认真啊,例子程序都没有调试过。
在网上查了查,希望找到调试空指针的方法,结果好像有用的资料很少,想来应该不会啊,android APP的开发应该是非常多的啊。
没办法,把调试器跑起来吧,看来看去,发现有个变量的值是为空的,但是程序中并没有用到啊。
savedInstanceState null
回头看了看重写之前的oncreate方法,找到了一条关于这个变量的赋值语句。
super.onCreate(savedInstanceState);
加到我的方法中,代码如下,
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
super.onCreate(savedInstanceState);
setContentView(textView);
}
再跑一下,果然OK了,android的这个方法的耦合性也太强了吧。
再研究研究这个savedInstanceState变量是干什么用的。
打开百度,super.onCreate(savedInstanceState); 看来我的理解是错误的,跟这个savedInstanceState变量貌似没什么关系。
这个super.onCreate是对activity进行一些必要的初始化,看来是个必不可少的方法。在吐槽一把google,这个开发者的指南也写得太烂了吧。