

こちらのページ下部の長いコードは適切にコピペすればうまく始動してくれます。  
<https://developers.google.com/sheets/api/quickstart/android>

この長いコードをMainActivityに入れてあり、レイアウトをこっちで設定して「button1を押したらシート１のB21に書き込む」ようなことはできました。

それはonCreateメソッドにGoogleAPI認証コードを取得するための

[code]

    mService = new com.google.api.services.sheets.v4.Sheets.Builder(
            transport, jsonFactory, credential)
            .setApplicationName("Google Sheets API Android Quickstart")
            .build();
    
[/code]

を実行することによって可能になります。そして上の変数mServiceを作るために様々なメソッドを呼び出しており、それらのメソッドはthis(MainActivityのみ)にしか使えないようになっています。

MainActivity→SubActivityに遷移はIntentを使ってデータを投げれるので問題ありませんが、SubActivityの状態からmServiceなど使ってGoogleAPIを通し、セルにデータを書き込むにはどうすればよいでしょうか？

SubActivityからIntentを使ってのonCreateは不可能でした。  
またMainActivityは最初に起動するActictivityなのでGetIntentが成り立ちません。

[code]

    MainActivity ma = new MainActivity();
    ma.getResultsFromApi(0);
    
    E/AndroidRuntime: FATAL EXCEPTION: main
                      Process: kanri.kintai, PID: 24031
                      java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference
                          at android.content.ContextWrapper.getPackageManager(ContextWrapper.java:91)
                          at com.google.android.gms.common.zzo.isGooglePlayServicesAvailable(Unknown Source)
                          at com.google.android.gms.common.zze.isGooglePlayServicesAvailable(Unknown Source)
                          at com.google.android.gms.common.GoogleApiAvailability.isGooglePlayServicesAvailable(Unknown Source)
                          at kanri.kintai.MainActivity.isGooglePlayServicesAvailable(MainActivity.java:272)
    
[/code]

上記エラー出力の一番下の行のエラー（２７２行目）

[code]

    private boolean isGooglePlayServicesAvailable() {
        GoogleApiAvailability apiAvailability =
                GoogleApiAvailability.getInstance();
    
        // 272行目
        final int connectionStatusCode =
                apiAvailability.isGooglePlayServicesAvailable(this);
    
        return connectionStatusCode == ConnectionResult.SUCCESS;
    }
    
[/code]


CC BY-SA 3.0
2017-11-19T23:20:21.863
39702
2017-11-19T23:20:21.863
26267
question
android java android-studio
GoogleSheets APIとAndroidStudioの連携