无法在android中访问从一个类到另一个类的方法。 实际上,我正在尝试的是
ClassA.java
class ClassA extends Activity
{
method_1();
}
ClassB.java
class ClassB extends BroadCastReciever
{
// I need to access the method_1 from the class ClassA.
}
我该怎么做?
答案 0 :(得分:1)
在ClassA
内声明来自ClassB
的{{1}}创建对象的公共方法和使用对象的访问方法
在ClassA
<强>像强>
ClassB
注意:
如果可能的话,如果没有必要,请不要将课程创建为ClassA classa = new ClassA();
classa.method_1();
。
为static
提供类修饰符。
答案 1 :(得分:1)
第一个解决方案
按以下方式声明您的method1()
-
public static void method_1()
{
}
然后您可以从ClassB
访问它,如下所示 -
ClassA.method1();
第二个解决方案
创建ClassA
的对象并从method1()
访问ClassB
,如下所示 -
ClassA classA = new ClassA();
classA.method1();
修改强>
如果两个类都在同一个包中,那么您可以在第一个解决方案中使用protected
而不是public
。
答案 2 :(得分:0)
有两种方法可以访问它
1)你需要创建方法作为公共静态方法(),以便你可以通过调用类名称点方法名称来访问它,如Aaa.method();
2)或者你需要一个对象来调用方法,比如将Aaa的对象传递给广播类和调用方法。
修改强>
如果要将上下文从活动A传递到brodcast类,则可以将上下文转换为活动对象以调用其公共方法。
像: 在brodcast类:
((yourActivityName)context).method();
答案 3 :(得分:0)
将method_1();
标记为公开和静态
例如:
class ClassA extends Activity
{
public void static method_1();
}
然后,您应该能够在不创建A类对象的情况下访问method_1();
。
答案 4 :(得分:0)
我猜你无法从扩展android中活动的类中访问一个方法,但是你可以像这个例子一样在activity类中添加一个内部或辅助类:
Call a public method in the Activity class from another class?
答案 5 :(得分:0)
基本上你可以从另一个类调用任何方法,只要它是公开的。如果方法是静态的,则甚至不需要实例化它。但是阅读一些教程以获得OOP的基本概念,而不是仅仅针对您的特定问题寻找解决方案,它将帮助更多!
答案 6 :(得分:0)
你永远不应该这样......你怎么知道这项活动是否还活着?从BroadcastReceivers向Activities发送消息(在onCreate / onresume中注册自定义接收器并在onDestroy / onPause中取消注册)的最佳方法是从BroadcastReceiver发送另一个广播消息。
但你可以在活动中看到最初的广播。考虑使用OrderedBroadcastReceivers。