【问题标题】:Call public void function from different activity android从不同的活动android调用公共无效函数
【发布时间】:2018-06-14 20:08:40
【问题描述】:

如何在 SecondActivity 中从 FirstActivity 调用 public void 函数?

  // FirstActivity

        public void thisFunction(){
         // do something 
         // do something  
        }

Second Activity

if(x){
FirstActivity.thisFunction();
}

但返回错误:

Non-static method 'thisFunction()' cannot be reference from a static context

【问题讨论】:

  • 这是一个经典问题考虑,事件总线或 rxandroid
  • 如果您在 FirstActivity 上的函数是 static,您可以在 public class Utils 中定义它,例如,在单独的类中。然后,在 SecondActivity 上,您可以致电 Utils.yourStaticFunction()。不知道这是否有帮助。
  • 我认为错误是自己定义的,我同意@statosdotcom 但您可以使用传递上下文调用而不是定义静态函数。

标签: android android-activity static void


【解决方案1】:

静态函数是类的函数,不依赖于该类的任何对象

Class.staticFunction()(无需实例化),随处调用即可

public static void thisFunction(){
     // do something 
     // do something  
    }

然后在SecondActivity中:

FirstActivity.thisFunctions();

【讨论】:

  • 是的,但这很少是一个好主意,在实用程序类或单例模式之外这样做可能表示设计错误。您还会很快发现 Android 中的静态方法很难完成很多工作,除非通过有效的 Context 或类似的方法。
猜你喜欢
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多