无法在android中访问从一个类到另一个类的方法

时间:2013-05-30 11:18:19

标签: android methods

无法在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.
}

我该怎么做?

7 个答案:

答案 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。