android 里面如何在一个Activity里面调用另外一个Activity里面的方法?
我在ActivityA里面直接调用ActivityB里面的方法报空指针,如果把Activity里面的方法改为静态的findViewById就报错,请问大家这个问题我该如何...
我在Activity A里面直接调用Activity B里面的方法报空指针,如果把Activity里面的方法改为静态的findViewById就报错,请问大家这个问题我该如何解决? 如何在Activity A里面调用Activity B里面的方法?
展开
6个回答
展开全部
想在一个Activity里面调用另外一个Activity的方法主要有接口回调和静态方法。但是除了静态方法之外,并不推荐接口回调方法。
其中静态方法实现参考如下表述:
需求:在A activity中调用 B activity的methodB()。
实现:使用静态实现。
在B方法中定义:
public static void methodB(){}
在A中需要使用methodB()的地方这样调用:
B.methodB();
为何不推荐在一个Activity中调用另一个Activity呢。因为Android系统运行内存较小,故其系统会在需要的时候将后台的进程自动清理掉以为当前进程提供运行内存。而android移动设备除了当前正在显示的activity意外,其他的activity都在后台运行。例如你在A activity中调用B activity 的方法时候,有可能B activity已经被销毁,所以,只能使用B activity的静态方法。
最后的做法是将Activity界面显示和逻辑分开写在不同的类中,这样才复合程序开发的MVC框架还有Java编程的面向对象思想。
展开全部
静态调用,如果有组件的初始化这些操作,是绝对会报这个错误的,因为Activity方法不会去调用它的OnCreate方法,无法加载xml布局 。 假使你要去初始化整个Activity,其 构造方法 也是无法初始化的,所以也是空指针 。
更多追问追答
追问
那我改怎么做呢? 怎么解决这个问题?怎么在一个Activity里面调用另外一个Activity\里面的方法?
追答
楼上的也行不通,呵呵,原因是一个意思,木有初始化操作。 如果是没有牵扯到组件的 ,可以执行。想不到其他方法了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.报空指针不代表不能调,你就看看为什么报空指针呗,看看是不是哪里的值没有传过去啊还是怎么着。
2.定义为静态报错,也不代表不能调,你看看是报什么错啊,然后改完错再说啊。
2.定义为静态报错,也不代表不能调,你看看是报什么错啊,然后改完错再说啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用广播,handler
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2018-02-27
展开全部
假设有两个类,第一个为A,第二个为B,A类调用B类的方法,在A类中,B b = new B();
b.方法名()你要调用那个方法名字就OK了
b.方法名()你要调用那个方法名字就OK了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询