改造1.9如何从回调开始新活动



我有问题,我认为只是:)我无法从我的回调方法进行改造的新活动,我会遇到

之类的问题

" android.util.androidruntimeException:从活动上下文的外部调用startActivity((需要flag_activity_new_task标志。这真的是您想要的吗?"

    sign_in_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String userEmail = email.getText().toString();
            String userPassword = password.getText().toString();
            final LoginService loginService = RetrofitClient.createService(LoginService.class, userEmail, userPassword);
            loginService.basicLogin(new Callback<User>() {
                @Override
                public void success(User user, Response response) {
                    Toast.makeText(getApplicationContext(),"You are Logged", Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent(getApplicationContext(), BetweenActivity.class);
                    startActivity(intent);


                }
                @Override
                public void failure(RetrofitError error) {
                    Toast.makeText(getApplicationContext(),"Something went wrong", Toast.LENGTH_SHORT).show();
                }
            });

这是我的日志:

致命例外:主要 过程:com.example.bunzlau.Retrofit,PID:18138 java.lang.runtimeException:无法启动活动ComponentInfo {com.example.bunzlau.retrofit/com.example.bunzlau.retrofit.betweenActivity}:widget.button.findviewbyid(int('null对象参考 at android.app.ActivityThread.performlaunchactivity(activityThread.java:3253( at android.app.ActivityThread.HandleLaunchActivity(ActivityThread.java:3349( at android.app.act.activitythread.access $ 1100(activityThread.java:221( at android.app.ActivityThread $ H.Handlemessage(activityThread.java:1794( at android.os.handler.dispatchmessage(Handler.java:102( at android.os.looper.loop(looper.java:158( at android.app.activitythread.main(activityThread.java:7225( 在java.lang.reflect.method.invoke(本机方法(上 在com.android.internal.os.os.zygoteinit $ methodAndargScaller.run(zygoteinit.java:1230( 在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:1120( 引起:java.lang.nullpointerexception:尝试调用虚拟方法'android.view.view android.widget.button.button.findviewbyid(int('null对象参考 在com.example.bunzlau.retrofit.betwenactivity.oncreate(Activity.java:18( 在android.app.activity.performcreate(activity.java:6876( 在android.app.instrumentation.callactivityoncreate(instrumentation.java:1135( 在android.app.act.activitythread.performlaunchactivity(activityThread.java:3206( at android.app.ActivityThread.HandleLaunchActivity(ActivityThread.java:3349( at android.app.act.activitythread.access $ 1100(activityThread.java:221( at android.app.ActivityThread $ H.Handlemessage(activityThread.java:1794( at android.os.handler.dispatchmessage(Handler.java:102( at android.os.looper.loop(looper.java:158( at android.app.activitythread.main(activityThread.java:7225( 在java.lang.reflect.method.invoke(本机方法(上 在com.android.internal.os.os.zygoteinit $ methodAndargScaller.run(zygoteinit.java:1230( 在com.android.internal.os.os.zygoteinit.main(zygoteinit.java:1120(

您是从回调范围内调用startActivity((,而不是活动范围。您需要获取对当前活动的参考,并使用它来开始下一个活动。

private Context context = this;
sign_in_button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        String userEmail = email.getText().toString();
        String userPassword = password.getText().toString();
        final LoginService loginService = RetrofitClient.createService(LoginService.class, userEmail, userPassword);
        loginService.basicLogin(new Callback<User>() {
            @Override
            public void success(User user, Response response) {
                Toast.makeText(getApplicationContext(),"You are Logged", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(getApplicationContext(), BetweenActivity.class);
                context.startActivity(intent);


            }
            @Override
            public void failure(RetrofitError error) {
                Toast.makeText(getApplicationContext(),"Something went wrong", Toast.LENGTH_SHORT).show();
            }
        });

最新更新