Java 从Activitys调用方法

Java 从Activitys调用方法,java,android,android-activity,Java,Android,Android Activity,我想调用在活动中声明的方法。此方法在更多活动中声明,但有不同的工作要做。我还有一个简单的java类,我想从当前活动调用这个方法。 因此,我需要一种从当前活动而不是从特定活动调用此方法的方法。有什么办法吗?我已经试着把当前活动的背景和活动告诉全班,但我不知道该怎么做。我是这样想的: 活动性: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我想调用在活动中声明的方法。此方法在更多活动中声明,但有不同的工作要做。我还有一个简单的java类,我想从当前活动调用这个方法。 因此,我需要一种从当前活动而不是从特定活动调用此方法的方法。有什么办法吗?我已经试着把当前活动的背景和活动告诉全班,但我不知道该怎么做。我是这样想的:

活动性:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Todo t = new Todo(this,this);
}

public void example(){
    //here do something
}
Java类:

public class Todo {

Context context;
Activity activity;

public Todo(Context context,Activity activity){
    this.context = context;
    this.activity = activity;
}
public void eventhere(){
    activity.example();
}
}

我希望您的示例过于简化,因为您的活动正在创建Todo类的一个实例,这样它就可以调用其中的一个方法,而该方法又可以调用活动类中的一个方法

这将完全等同于活动只调用自己的方法,而完全不使用Todo对象

所以,如果你能更详细地解释你想做什么,我们可以为你指出正确的方向

不过,我猜一下。看起来您可能正在尝试实现命令模式,使用Todo对象作为命令。 也许您想在其他地方创建这些命令,并在以后执行它们

我认为一个有趣的方法是使用消息总线。 例如,Todo的不同子类在“执行”时可以在总线上放置不同的“消息”对象。然后,这些活动可以订阅总线,并通过调用其适当的方法来响应总线消息


这种模式将使事物松散耦合。Todo对象不需要了解特定的活动子类,活动也不需要了解Todo对象。唯一的共同点是总线和总线上的消息。

您需要一个接口。或者创建一个baseActivity,将其用作其他每个活动的父活动。在base中声明您的方法并在子活动中定义它这实际上更像是一个Java问题而不是一个Android问题。在尝试创建Android应用程序之前,最好对Java编程语言有一个基本的了解。只是一些友好的建议。