3

在我的android應用程序中,我有一個GoogleApiClient mGoogleApiClient;對象。我想將它從login.java類傳遞給MainActivity.java類。 我試圖使用Serializable和Parcelable。將GoogleApiClient對象傳遞給另一個活動?

Intent mainIntent = new Intent(this, MainActivity.class); 
     mainIntent.putExtra("googleapi", (Serializable) mGoogleApiClient); 
     startActivity(mainIntent); 

我得到這個錯誤java.lang.ClassCastException: com.google.android.gms.common.api.c cannot be cast to java.io.Serializable。 現在,如果我嘗試傳遞一個字符串,它的工作原理。我可以理解,我不能將一個GoogleAPIClient類轉換爲Serializable。

我應該如何將這個對象發送給其他類?

+0

可能重複[如何正確使用谷歌加號與多個活動?(http://stackoverflow.com/questions/22368520 /如何正確使用google-plus-sign-in-with-multiple-activities) – 2015-07-28 16:40:15

回答

4

嘗試在Application類中聲明mGoogleApiClient對象。

+0

Application class是什麼意思?登錄類或MainActivity類? – user2798227 2015-03-25 03:59:43

+0

public class YourClassName extends Application { } – 2015-03-25 04:04:40

+0

但我的登錄類已經在擴展ActionBarActivity。我不能擴展應用程序類 – user2798227 2015-03-25 04:05:55

2

ApplicationTest.Java

public class ApplicationClass extends Application 
{ 
    //instantiate object public static 
    public static GoogleApiClient mGoogleApiClient; 
    public Context mContext; 

    @Override 
    public void onCreate() 
    { 
     super.onCreate(); 
     mContext = getApplicationContext(); 

     mGoogleApiClient = new GoogleApiClient.Builder(mContext) 
      .addConnectionCallbacks(mContext) 
      .addOnConnectionFailedListener(mContext) 
      .addApi(Games.API).addScope(Games.SCOPE_GAMES) 
      // add other APIs and scopes here as needed 
      .build(); 
    } 

    @Override 
    public void onTerminate() 
    { 
     super.onTerminate(); 
    } 
} 

TestClass.Java

public class TestClass extends Activity 
{ 
    @Override 
    public void onCreate() 
    { 
     super.onCreate(); 
     //this way you have can use object of mGoogleApiClient anywhere in the app. 
     ApplicationTest.mGoogleApiClient; 
    } 
} 
+0

但在我的login.java類中,我已經擴展了ActionBarActivity類。我不能擴展兩個類。 – user2798227 2015-03-25 04:11:02

+0

檢查上面的類,你必須創建一個新的應用程序類,請忘記登錄類。 – 2015-03-25 04:20:22

+0

所以你的意思是我應該創建一個ApplicationClass.java並按照你的方式擴展Application。我是否需要從某處調用這個ApplicaitonClass,或者我應該這樣創建它並保留它? – user2798227 2015-03-25 04:22:39

相關問題