Всем привет. Эту тему я хочу посвятить Google App Inventor (далее просто изобретатель), с которым я думаю вы знакомы по предыдущим темам других людей.
Его обвиняют в малом функционале.
Я тоже так думал, и когда он только запустился, я смог сделать только пару безделушек.
Но когда я на днях зашёл в Inventor, то был приятно удивлён, ведь июньское обновление добавило много интересных блоков, таких как: Интернет, TinyWebDB, TinyDB, Notifier. В этой теме мы рассмотрим, как можно прочитать XML-файл на примере получения кармы пользователя (я решил использовать этот пример после того, как один из пользователей написал тему про Python и SL4A).
Мы не будем подробно рассматривать интерфейс; это легко понять как есть.
Сначала покажу, какая схема у нас в итоге получится:
Добавление компонентов
Откройте в браузере страницу appinventor.googlelabs.com, создайте новый проект и добавьте в макет экрана следующие компоненты: Web, Notifier, Button, Label, TextBox, если необходимо, то измените на них метки.
У меня получилось вот так:
Создание переменных
Откройте редактор блоков (кнопка справа вверху) и приступим к созданию блоков кода.Сначала вам нужно создать две переменные: lworking и lCopyofWorking .
Переменные создаются следующим образом: Слева проходим по вкладкам меню Встроенный → Определение и перетащить переменная определения в рабочую зону.
Обе переменные будут иметь тип список , так что пойдем Встроенный → Списки и перетащите дважды Составить список в переменные.
Затем вам нужно добавить два типа элементов в переменную списка.
текст ( Встроенный → Текст ) со значением > и <.
Вот что должно было произойти:
Обработка нажатия кнопки
Обработку нажатия кнопок можно найти в Мои блоки → Кнопка1 , этот блок называется Кнопка1.Нажмите .Переместите его в свою рабочую зону.
Что будет делать щелчок? Необходимо убедиться, что при нажатии на кнопку устанавливается url для запроса XML-файла и отправляется сам запрос.
Для этого перейдите в Мои блоки → Веб1 и перетащите блоки в рабочую область установить Web1.Url И позвоните в Web1.Get , затем вставьте их в Кнопка1.Нажмите .
Теперь нам нужно создать свой URL, для чего нам нужны блоки присоединиться ( Встроенный → Текст ), текст (там же), в который нужно ввести значение час ttp://habrahabr.ru/api/profile/ И TextBox1.Текст ( Мои блоки → Текстовое поле1 ).
Из их названия, думаю, понятно, что они делают и в каком порядке их располагать.
Вот как я это сделал:
Получение и открытие XML
Добавьте блок в рабочую область Web1.GotText ( Мои блоки → Веб1 ).Этот блок срабатывает при успешном выполнении команды.
Web1.URL и получен ответ от сервера.
Сначала нужно разбить текст, используя такую конструкцию:
Первый блок устанавливает значение переменной (она находится в Мои блоки → Мои определения ).
Второй разбивает текст ответСодержимое с использованием lКопияРабочей .
(Полученный текст будет примерно логин под ником /login karma 66 /karma .
).
После этого нужно проверить, существует ли такой пользователь.
Благодаря тому, что если имя пользователя написано неправильно, Хабр возвращает файл с ошибкой, мы легко можем проверить, существует ли такой пользователь, с помощью следующих блоков:
Думаю здесь с назначением блоков все понятно.
если еще находится в Встроенный → Контроль .
содержит В Встроенный → Текст .
Глобальный В Мои блоки → Мои определения .
Теперь нам нужно просмотреть все элементы листа.
работаю используя функцию для каждого ( Встроенный → Контроль ).
Вот как это выглядит:
Эту конструкцию необходимо заменить на еще-сделай .
Остается только узнать, есть ли в текущем случае тег кармы и вывести его значение.
Вы можете узнать это с помощью того, что мы уже знаем.
содержит , если (находится там же, где и ifelse), текст /карма и переменная рабочий элемент2 что-то вроде этого:
Все! Остается только отобразить значение кармы, что мы и сделаем с помощью функции Notifier1.ShowAlert ( Мои блоки → Уведомитель1 ).
Ничего сложного в этом нет, поэтому мы рассмотрим лишь построение текста сообщения:
Как видите, эта задача оказалась для меня довольно громоздкой.
С присоединиться вы уже знакомы, не будем на этом останавливаться.
А вот со второй частью надо разобраться.
выбрать элемент списка ( Встроенный → Списки ), как следует из названия, выбирает элемент на листе работаю .
К аргументу индекс прикрепите функцию вычитания ( Встроенный → Математика ), в котором будет вычтена позиция текущего тега ( /карма ) тип переменной число ( Встроенный → Математика ) со значением 1. Функция определения положения текущего тега называется позиция в списке и находится в Встроенный → Списки .
Завершение
Соединяем наши блоки как показано на первом скриншоте и тестируем.
Как видите, на самом деле App Inventor — не такая уж безделушка, которая, на первый взгляд, годится только для создания мяукающего кота.
Урок, вдохновивший на создание этой статьи Загрузите приложение:
Теги: #Android #App Inventor #karma #xml #разработка для Android
-
Google Пришел В Россию?
19 Oct, 24 -
Что Не Так С Webassembly?
19 Oct, 24 -
Короткие Ссылки В Google Maps
19 Oct, 24 -
Почему Openvpn Медленный?
19 Oct, 24 -
Как Стать Фрилансером
19 Oct, 24 -
Плагин Для Redmine
19 Oct, 24 -
Настройка Сети В Образовательном Учреждении
19 Oct, 24