4259


現在非アクティビティクラスから別のアクティビティへ画面遷移をさせようとしているのですが、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]


CC BY-SA 3.0
2015-01-08T01:43:59.973
4257
2015-01-08T02:08:28.500
2015-01-08T02:00:05.363
5210
5210
question
android android-intent
Activityを継承していないクラスから画面遷移を行う


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]


CC BY-SA 3.0
2015-01-08T02:08:28.500
4259
2015-01-08T02:08:28.500
845
4257
answer