问题描述:
Activity A
A中有一个TextView控件 ,一个Button控件,点击Button控件激活Activity B,还有一个公有方法c ,c 传入一个String参数s 将s 显示到TextView上
Activity B
一个EditView控件 一个确定Button,点击Button跳转到A并将EditView输入的内容显示到TextView控件上
开始时,思路
在B中Button的setOnClickListener方法中 {stratActivity(new Intent(getApplicationContext,A.class)) } 接着new A() 调用A的公有方法c
结果:返回了A界面,但无信息显示
报告空指针异常
考虑到激活B时的A和new的A的实例对象不一致,修改A的启动模式为singleTask,通过打印测试发现实例对象是一样的
结果:返回了A界面,但无信息显示
但还是报告空指针异常
于是在A中的c方法中打印TextView的实例对象,发现TextView为空(ps:c中调用了TextView的setText方法)
疑问一:为什么为空?
发现c中的TextView为空,于是在c中实例化TextView,调用findViewById
又报空指针异常
看打印的异常信息,TextView成功实例化,空指针与findViewId有关 ???????????
更奇怪的是激活B的A和由B回显的A两个实例对象竟然不一致了
思考良久,不得其解
最后使用Aativity中的startActivityForResult和onActivityResult完美实现