Android 一个Activity调用另一个Activity中的公有方法

问题描述:

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完美实现

Android 一个Activity调用另一个Activity中的公有方法_第1张图片

 

你可能感兴趣的:(c,android,String,测试,button)