无法在android中访问从一个类到另一个类的方法
无法在android中访问从一个类到另一个类的方法。 事实上,我正在尝试的是 ClassA.java无法在android中访问从一个类到另一个类的方法,android,methods,Android,Methods,无法在android中访问从一个类到另一个类的方法。 事实上,我正在尝试的是 ClassA.java class ClassA extends Activity { method_1(); } class ClassB extends BroadCastReciever { // I need to access the method_1 from the class ClassA. } ClassB.java class ClassA extends Activity {
class ClassA extends Activity
{
method_1();
}
class ClassB extends BroadCastReciever
{
// I need to access the method_1 from the class ClassA.
}
ClassB.java
class ClassA extends Activity
{
method_1();
}
class ClassB extends BroadCastReciever
{
// I need to access the method_1 from the class ClassA.
}
如何执行此操作?在
ClassA
内部从ClassB
声明公共方法创建ClassA
的对象并使用对象访问方法
在ClassB
喜欢
ClassA classa = new ClassA();
classa.method_1();
注意:
- 如果可能,不要将类创建为
(如果不需要)静态
- 为
提供类修饰符公共
- 第一个解决方案
声明您的
method1()
,如下所示-
public static void method_1()
{
}
ClassA.method1();
然后您可以从ClassB
访问它,如下所示-
public static void method_1()
{
}
ClassA.method1();
第二种解决方案
创建ClassA
的对象,并从ClassB
访问method1()
,如下所示-
ClassA classA = new ClassA();
classA.method1();
编辑:
如果两个类都在同一个包中,那么您可以在第一个解决方案中使用
受保护的
而不是公共的
。有两种方法可以访问它
1) 您需要将该方法创建为publicstaticmethod(),以便可以通过调用类名dot method name(如Aaa.method())在任何地方访问它
2) 或者您需要一个对象来调用方法,比如将Aaa的对象传递给广播类并调用该类上的方法
编辑:
若要将上下文从活动A传递到brodcast类,那个么可以将上下文转换为活动对象以调用其公共方法
比如:
在brodcast类中:
((yourActivityName)context).method();
标记方法_1()代码>作为公共和静态
例如:
然后您应该能够访问method_1()代码>不创建类a的对象。我猜您无法从扩展android中活动的类访问方法,但是您可以向活动类添加内部类或帮助类,如以下示例所示:
基本上,您可以从另一个类调用任何方法,只要它是公共的。如果方法是静态的,您甚至不需要实例化它。但是,阅读一些教程来了解OOP的基本概念,而不仅仅是为您的特定问题寻找解决方案,它会有更多帮助 你永远都不可能做到这一点。。。您如何知道该活动是否仍然存在?将消息从BroadcastReceivers发送到Activities(在onCreate/onresume中注册自定义接收器,并在onDestroy/onPause中注销)的最佳方式是从BroadcastReceivers发送另一条广播消息
但是你可以在活动中看到最初的广播。考虑使用有序广播接收器.< /P>方法()作为静态方法。这是java的基础。您需要首先清除java概念。将方法_1()设置为STATICClassA是活动。制作活动对象不是好的做法