如何在不创建被调用活动的新对象的情况下从另一个活动调用一个活动的功能?

时间:2013-10-31 08:43:27

标签: android

我创建了activity1并从activity2调用了activity1。现在我希望将activity1的函数调用activity2并且无需初始化activity1“以避免再次重新创建activity 1。我想知道我的第二个活动的callfirst()中的代码

这是我的主要活动

    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);
        SetContentView (Resource.Layout.Main);
        Button button1 = FindViewById<Button> (Resource.Id.myButton1);
        button1.Click += (object sender, EventArgs e) => firstload ();
    }
    protected override void OnSaveInstanceState (Bundle outState)
    {
        base.OnSaveInstanceState (outState);
    }
    public void firstload()
    {
        StartActivity(typeof(first));
    }

这是我的第一个活动

    public class first : Activity
{
    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);
        SetContentView (Resource.Layout.first);
        Button btn = FindViewById<Button>(Resource.Id.btnfirst);
        btn.Click += (object sender, EventArgs e) => loadsecond();
    }

    public void loadsecond()
    {
        StartActivity (typeof(second));
    }
     public void message()
    {
        Toast.MakeText (this, "fxn of activityfirst called from     activitysecond", ToastLength.Short).Show ();        
    }
}

这是我的第二项活动

public class second : Activity
{

    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);
        SetContentView (Resource.Layout.second);
        Button btn = FindViewById<Button> (Resource.Id.btnsecond);
        btn.Click += (object sender, EventArgs e) => callfirst();       
    }
    public void callfirst()
    {
      //what should i do here ???
    }

}

3 个答案:

答案 0 :(得分:1)

如果你需要使用一些常用函数和全局变量,最好创建一个包含它们的类 - 比如Globals.java。你可以在那里拥有全局变量:

public static String someGlobalString = "";
public static void someGlobalFunction(){ };

您可以使用以下代码调用它们:

Globals.someGlobalString = "some value";
Globals.someGlobalFunction();

答案 1 :(得分:0)

创建该方法static并使用该类名调用本身coz静态方法和变量从该类名本身调用

答案 2 :(得分:0)

a您确实可以为此目的使用静态方法,但不应将静态方法的活动用于其他活动。这不是他们应该如何工作的。它们应该是可以使用Binder框架将消息相互传递的独立实体。如果您确实需要访问相同的方法,那么只需创建另一个具有两种活动的静态方法的类。