Activityを継承していないクラスから画面遷移を行う


現在非アクティビティクラスから別のアクティビティへ画面遷移をさせようとしているのですが、NullPointerExceptionが返ってきて画面遷移ができません。

[code]

    java.lang.NullPointerException
                at android.app.Activity.startActivityForResult(Activity.java:3424)
                at android.app.Activity.startActivityForResult(Activity.java:3385)
                at android.app.Activity.startActivity(Activity.java:3627)
                at android.app.Activity.startActivity(Activity.java:3595)
                at appdev.test.subactivity.move(SubActivity.java:79)
                at appdev.test.MainActivity.onClick(MainActivity.java:58)
                at android.view.View.performClick(View.java:4438)
                at android.view.View$PerformClick.run(View.java:18422)
                at android.os.Handler.handleCallback(Handler.java:733)
                at android.os.Handler.dispatchMessage(Handler.java:95)
                at android.os.Looper.loop(Looper.java:136)
                at android.app.ActivityThread.main(ActivityThread.java:5001)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:515)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                at dalvik.system.NativeStart.main(Native Method)
    
[/code]

下記のようなコードを書いているのですが、どうすれば画面遷移ができるようになるのでしょうか？宜しくお願いします。

MainActivity

[code]

    SubActivity subactivity = new SubActivity();
    subactivity.move(this);
    
[/code]

SubActivity

[code]

    public void move(Activity activity) {            
        startActivity(new Intent(activity, AnotherActivity.class));
    }
    
[/code]




Activityを継承していないクラスに、Activityインスタンスを渡せばよいような？

[code]

    // Activityを継承していないクラス
    // 多分インスタンスはActivityを継承したクラスで作られる
    public class MyModel {
        private Activity mActivity;
        public MyModel(Activity activity) {
            mActivity = activity;
        }
    
        // このメソッド内で遷移させたい
        public void doSomething() {
            mActivity.startActivity(new Intent(mActivity, AnotherActivity.class));
        }
    }
    
[/code]




Activityを継承していないクラスに、Activityインスタンスを渡せばよいような？

[code]

    // Activityを継承していないクラス
    // 多分インスタンスはActivityを継承したクラスで作られる
    public class MyModel {
        private Activity mActivity;
        public MyModel(Activity activity) {
            mActivity = activity;
        }
    
        // このメソッド内で遷移させたい
        public void doSomething() {
            mActivity.startActivity(new Intent(mActivity, AnotherActivity.class));
        }
    }
    
[/code]

