Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 完成快速入门教程后使用google sheets api_Android_Google Sheets_Oauth 2.0_Google Sheets Api - Fatal编程技术网

Android 完成快速入门教程后使用google sheets api

Android 完成快速入门教程后使用google sheets api,android,google-sheets,oauth-2.0,google-sheets-api,Android,Google Sheets,Oauth 2.0,Google Sheets Api,我对Android应用程序开发还很陌生,所以请原谅我的天真 我目前正在尝试开发一个应用程序,可以从谷歌电子表格中提取数据并将数据写入其中 我已经完成了快速入门教程,因此我的代码与现在的代码相同。一切正常 我的问题是我需要能够阅读我自己的电子表格,但我并不真正理解使用的代码,所以我很难知道从哪里开始 我已经考虑过用更少的步骤来尝试和实现授权,我认为这可能会使代码更容易理解——但同样,我缺乏知识,这意味着我不知道这如何适合我目前拥有的所有方法 我查看了开发人员文档,并尝试用以下代码替换从应用程序检索

我对Android应用程序开发还很陌生,所以请原谅我的天真

我目前正在尝试开发一个应用程序,可以从谷歌电子表格中提取数据并将数据写入其中

我已经完成了快速入门教程,因此我的代码与现在的代码相同。一切正常

我的问题是我需要能够阅读我自己的电子表格,但我并不真正理解使用的代码,所以我很难知道从哪里开始

我已经考虑过用更少的步骤来尝试和实现授权,我认为这可能会使代码更容易理解——但同样,我缺乏知识,这意味着我不知道这如何适合我目前拥有的所有方法

我查看了开发人员文档,并尝试用以下代码替换从应用程序检索数据的quickstart中的代码:

ValueRange result = service.spreadsheets().values().get(spreadsheetId, range).execute();
int numRows = result.getValues() != null ? result.getValues().size() : 0;
System.out.printf("%d rows retrieved.", numRows);
但是,这与我已有的代码不同,因此不适合,因为getDataFromApi()方法需要一个return语句。我尝试将电子表格ID更改为我自己的电子表格ID,并将范围值更改为我需要的单元格

/**
         * Fetch a list of names and majors of students in a sample spreadsheet:
         * https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
         * @return List of names and majors
         * @throws IOException
         */
        private List<String> getDataFromApi() throws IOException {
            String spreadsheetId = "1-hL78Jm9-HijPx9UHthFxcXatkIhA2FR-AQ1lrCUbEg";
            String range = "Go Mix 12 0506!B6:D";
            List<String> results = new ArrayList<String>();
            ValueRange response = this.mService.spreadsheets().values()
                    .get(spreadsheetId, range)
                    .execute();
            List<List<Object>> values = response.getValues();
            if (values != null) {
                results.add("Name, Major");
                for (List row : values) {
                    results.add(row.get(1) + ", " + row.get(3));
                }
            }
            return results;
        }
/**
*在样本电子表格中获取学生姓名和专业列表:
* https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
*@返回姓名和专业列表
*@抛出异常
*/
私有列表getDataFromApi()引发IOException{
字符串spreadsheetId=“1-hL78Jm9-HijPx9UHthFxcXatkIhA2FR-AQ1LRUCUBEG”;
字符串范围=“Go Mix 12 0506!B6:D”;
列表结果=新建ArrayList();
ValueRange响应=this.mService.spreadsheets().values()
.get(电子表格ID,范围)
.execute();
列表值=response.getValues();
如果(值!=null){
结果。添加(“姓名、专业”);
用于(列表行:值){
添加(row.get(1)+“,”+row.get(3));
}
}
返回结果;
}
但我显然是弄错了,因为我犯了这个错误: 索引3无效,大小为3

我也跟进了视频15,但它绕过了任何授权的需要,所以没有帮助

基本上,我遇到了麻烦,需要有人用简单的术语向我解释如何使用quickstart教程中的代码来使用我自己的电子表格并修复该错误!或者(比我更喜欢)解释一下如何从头开始做。注意:电子表格不能公开,因此我需要授权


我希望一切都有意义

您要求检索三列数据(B到D),但随后试图读取第四列(
rows.get(3)
)。在Java(以及大多数编程语言)中,列表和数组是基于0的。因此,如果需要第一项,可以调用
list.get(0)
,如果需要第三项,可以调用
list.get(2)
。这一点很明显,因为错误消息告诉您索引3无效,因为列表大小为3——您试图读取列表末尾以外的内容