2017-06-04 122 views
0

開始新的活動我有簡單的問題,我覺得簡直就是:) 我無法從我的改造回調方法開始新的活動,我越來越喜歡改造1.9如何從回調

問題「 android.util.AndroidRuntimeException:從Activity上下文外調用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 {融爲一體。 example.bunzlau.retrofit/com.example.bunzlau.retrofit.BetweenActivity}:java.lang.NullPointerException:嘗試在空對象引用上調用虛擬方法'android.view.View android.widget.Button.findViewById(int)' at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) at android.app.ActivityThread.access $ 1100(ActivityThread.java:221) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1794 )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.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1230) 在com.android.internal.os.ZygoteInit.main( ž ygoteInit.java:1120) 引起:java.lang.NullPointerException:嘗試在null對象引用 上的com.example.bunzlau上調用虛擬方法'android.view.View android.widget.Button.findViewById(int)' .retrofit.BetweenActivity.onCreate(BetweenActivity.java:18) at android.app.Activity.performCreate(Activity.java:6876) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) at android.app (ActivityThread.java:220) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) (android.os.Load.loop)(Looper.java:158)在android.app.ActivityThread上的$ H.handleMessage(ActivityThread.java:1794) (android.os.Handler.dispatchMessage(Handler.java:102) ) at android.app.ActivityThread.main(ActivityThread.java:7225) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java :1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

+0

看來你的BetweenActivity。onCreate()拋出異常,所以你的問題可能不會直接關係到從Retrofit開始一個活動。 在BetweenActivity.onCreate()中查找findViewById()。 – Vaiden

回答

0

您從回調的範圍內調用startActivity(),而不是t他活動的範圍。您需要獲取對當前活動的參考,然後使用它開始下一個活動。

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(); 

      } 
     }); 
+0

感謝您的評論,但我仍然收到此錯誤:「由:java.lang.NullPointerException引發」。你知道也許有什麼理由嗎? –

+0

我的意思是,我正在參考當前的活動,但它無法正常工作。 –