Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
#1

Пример работы с google docs spreadsheet. Не работает - Программирование Android

24.01.2015, 19:52. Просмотров 1000. Ответов 9
Метки нет (Все метки)

Есть такой пример.
Мне нужно вытянуть данные с таблицы (желательно тянуть сразу массив рядка или столбца (и было б круто вытянуть рядки по заднанном значению)). Пока не суть.

Хочу понять почему в примере подчеркивает ошибку

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import com.google.gdata.client.spreadsheet.*;
import com.google.gdata.data.spreadsheet.*;
import com.google.gdata.util.*;
 
import java.io.IOException;
import java.net.*;
import java.util.*;
 
public class MySpreadsheetIntegration {
  public static void main(String[] args)
      throws AuthenticationException, MalformedURLException, IOException, ServiceException {
 
    SpreadsheetService service =
        new SpreadsheetService("MySpreadsheetIntegration-v1");
 
    // TODO: Authorize the service object for a specific user (see other sections)
 
    // Define the URL to request.  This should never change.
    URL SPREADSHEET_FEED_URL = new URL(
        "https://spreadsheets.google.com/feeds/spreadsheets/private/full");
 
    // Make a request to the API and get all spreadsheets.
    SpreadsheetFeed feed = service.getFeed(SPREADSHEET_FEED_URL,
        SpreadsheetFeed.class);
    List<SpreadsheetEntry> spreadsheets = feed.getEntries();
 
    if (spreadsheets.size() == 0) {
      // TODO: There were no spreadsheets, act accordingly.
    }
 
    // TODO: Choose a spreadsheet more intelligently based on your
    // app's needs.
    SpreadsheetEntry spreadsheet = spreadsheets.get(0);
    System.out.println(spreadsheet.getTitle().getPlainText());
 
    // Get the first worksheet of the first spreadsheet.
    // TODO: Choose a worksheet more intelligently based on your
    // app's needs.
    WorksheetFeed worksheetFeed = service.getFeed(
        spreadsheet.getWorksheetFeedUrl(), WorksheetFeed.class);
    List<WorksheetEntry> worksheets = worksheetFeed.getEntries();
    WorksheetEntry worksheet = worksheets.get(0);
 
    // Fetch the list feed of the worksheet.
    URL listFeedUrl = worksheet.getListFeedUrl();
    ListFeed listFeed = service.getFeed(listFeedUrl, ListFeed.class);
 
    // Iterate through each row, printing its cell values.
    for (ListEntry row : feed.getEntries()) {
      // Print the first column's cell value
      System.out.print(row.getTitle().getPlainText() + "\t");
      // Iterate over the remaining columns, and print each cell value
      for (String tag : row.getCustomElements().getTags()) {
        System.out.print(row.getCustomElements().getValue(tag) + "\t");
      }
      System.out.println();
    }
  }
}
for (ListEntry row : feed.getEntries())
так понял не соответсвие типов? И как ее исправить?
http://www.cyberforum.ru/android-dev/thread1338692.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2015, 19:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Пример работы с google docs spreadsheet. Не работает (Программирование Android):

Вылетает оф. пример Google
Здравствуйте. Не подскажите, почему у меня вылетает (Facebook SDK). Пример...

Вылетает официальный пример Google
Здравствуйте. Не подскажите, почему у меня вылетает (Facebook SDK). Пример...

OAuth 2.0 нужен пример для входа google документы
Раньше входил с кодом service.setUserCredentials(USERNAME, PASSWORD); теперь же...

Пример работы AlarmManager
Может кто то объяснить работу AlarmManager на конкретном примере. Задача...

Подходит ли C# для работы с анкетами Google Docs
Есть идея написание программы для работы с анкетами Google Docs, что бы собирал...

9
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 608
24.01.2015, 20:21 #2
Цитата Сообщение от powowstal Посмотреть сообщение
for (ListEntry row : feed.getEntries())
Если приведение типов возможно и ошибка в этом, то просто очень:
Java
1
for(ListEntry r: (ListEntry)feed.getEntries())
Но в цикле это плохо делать)
Если это не перечисляемый класс, то используйте цикл while или тот же for, но со счетчиком
0
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
24.01.2015, 20:25  [ТС] #3
contedevel, угу если бы все было так просто, типы не приводятся так как
Can only iterate over an array or an instance of java.lang.Iterable
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 608
24.01.2015, 20:27 #4
Цитата Сообщение от powowstal Посмотреть сообщение
Can only iterate over an array or an instance of java.lang.Iterable
Это второй пункт моего ответа
0
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
24.01.2015, 20:54  [ТС] #5
contedevel, Пред циклом сделал приведение результата нет
Java
1
2
3
ListEntry rowI = (ListEntry)feed.getEntries();
                        
            for (ListEntry row : rowI) {
0
dtx1212
6 / 6 / 3
Регистрация: 08.12.2013
Сообщений: 26
24.01.2015, 21:35 #6
contedevel, зачем вы пытаетесь привести список записей к единичной записи?
Edit:
powowstal, посмотрел документацию этого метода, он возвращает List с типом, определенным при создании фида, в данном случае это SpreadsheetEntry. Так что перебор должен выглядеть так.
Java
1
for (SpreadsheetEntry spreadsheetEntry : feed.getEntries())
0
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
24.01.2015, 21:36  [ТС] #7
dtx1212, не помогло (
0
dtx1212
6 / 6 / 3
Регистрация: 08.12.2013
Сообщений: 26
24.01.2015, 21:44 #8
powowstal, если вам нужен именно ListFeed - используйте его, а не SpreadsheetFeed
Java
1
2
ListFeed listFeed = service.getFeed(listFeedUrl, ListFeed.class);
for (ListEntry listEntry : listFeed.getEntries()){}
0
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
24.01.2015, 21:51  [ТС] #9
dtx1212, тогда нужные мне ф-и перестают функционировать, это официальный же пример от гугла, я надеялся что там все правильно
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 608
24.01.2015, 23:43 #10
Цитата Сообщение от dtx1212 Посмотреть сообщение
зачем вы пытаетесь привести список записей к единичной записи?
Честно говоря, машинально написал ListEntry...

Добавлено через 4 минуты
Цитата Сообщение от powowstal Посмотреть сообщение
Пред циклом сделал приведение результата нет
Это глупость, извините... Машинально приведение типов написал, там коллекция возвращается, так нельзя делать, вообще, при переборе это глупость, даже если бы можно было привести.
0
24.01.2015, 23:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2015, 23:43
Привет! Вот еще темы с решениями:

Скрипт для Google Spreadsheet
Здравствуйте! Прошу помочь. Есть таблица в Google Spreadsheet, таблица имеет 1...

Вывод массива для Google spreadsheet
Доброго времени суток! начал осваивать js надо написать скрипт для Google...

Google Docs Api
Здравствуйте. На работе возникла задача - делаю сайт для ипотечного центра -...

Google Docs и доступ
Доброе время суток! Если я ошибся разделом, прошу модератора перенести тред....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru