从非活动类启动活动

时间:2015-05-06 12:23:55

标签: android android-intent

我正在尝试通过类从ActivityA启动ActivityB。

所以我以这种方式在ActivityA中创建我的非活动类:

public class ActivityA extends Activity {
    myDialog = new MyDialog(this);

}

我在类构造函数中启动我的第二个活动,如下所示:

public MyDialog(Context context) {
    Intent i = new Intent (context, ActivityB.class);
    context.startActivity(i);
}

问题是我想从ActivityB获取MyDialog。这可能吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

选项1: 你可以上课#34; MyDialog" static而不是在构造函数中,创建一个启动activityB的void。 我不确定你为什么要从activityB启动activityB,但是如果它们在同一个应用程序中则可以工作:

public static class MyDialog {

    public static void StartDialog(Context context){
        System.out.println("STARTING ACTIVITY B");
        Intent i = new Intent (context, ActivityB.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
}

在活动B中使用此调用:

ActivityA.MyDialog.StartDialog(getApplicationContext());

选项2: 如果您不想将MyDialog创建为静态,那么:

public class MyDialog {

    Context context;

    public MyDialog(Context c){
        context = c;
    }

    public void StartDialog(){
        System.out.println("STARTING ACTIVITY B");
        Intent i = new Intent (context, ActivityB.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
}

然后,在ActivityB中:

ActivityA ma = new ActivityA();
MyDialog md = ma.new MyDialog(getApplicationContext());
md.StartDialog();