Как создать таблицу android

TableLayout и TableRow

Разметка TableLayout (Табличная разметка) позиционирует свои дочерние элементы в строки и столбцы, как это привыкли делать веб-мастера в теге table. TableLayout не отображает линии обрамления для их строк, столбцов или ячеек. TableLayout может иметь строки с разным количеством ячеек. При формировании разметки таблицы некоторые ячейки при необходимости можно оставлять пустыми. При создании разметки для строк используются объекты TableRow, которые являются дочерними классами TableLayout (каждый TableRow определяет единственную строку в таблице). Строка может не иметь ячеек или иметь одну и более ячеек, которые являются контейнерами для других объектов. В ячейку допускается вкладывать другой TableLayout или LinearLayout.

TableLayout удобно использовать, например, при создании логических игр типа Судоку, Крестики-Нолики и т.п.

Вот несколько правил для TableLayout. Во-первых, ширина каждой колонки определяется по наиболее широкому содержимому в колонке. Дочерние элементы используют в атрибутах значение match_parent. Атрибут TableRow для layout_height всегда wrap_content. Ячейки могут объединять колонки, но не ряды. Достигается слияние колонок через атрибут layout_span.

Если атрибуту android:stretchColumns компонента TableLayout присвоить значение «*», то содержимое каждого компонента TableRow может растягиваться на всю ширину макета.

Создаем таблицу прогноза погоды

Например, для создания таблицы прогноза погоды можно использовать следующий дизайн:

  • В первом ряду показать заголовок таблицы
  • Во втором ряду показать даты по типу календаря
  • В третьем ряду показать наибольшую температуру
  • В четвёртом ряду показать наименьшую температуру
  • В пятом ряду показать графику (дождь, снег, облачность, солнце)

Показать код (щелкните мышкой)

В альбомной ориентации наша разметка будет выглядеть следующим образом

Программное создание TableLayout

Усадка, усушка, утруска

Если текст в ячейке таблицы слишком длинный, то он может растянуть ячейку таким образом, что часть текста просто выйдет за пределы видимости. Чтобы избежать данной проблемы, у контейнтера TableLayout есть атрибут android:shrinkColumns. Мы рассмотрим программное применение данного атрибута через метод setColumnShrinkable().

Для начала смоделируем ситуацию и поместим в одну из ячеек очень длинный текст, который не поместится на экран:

Теперь напишем код для усадки текста:

Книжная полка

Создадим подобие книжной полки. Нам понадобится изображение одной полки, которая послужит фоном и изображение книги (найдите сами).

Объявим две константы, которые отвечают за количество полок и количество книг на каждой полке.

Откуда на верхней полке появился кот и как он туда забрался я не знаю. Вы уж сами разберитесь с ним.

Источник

TableLayout приложения Android

Данная статья является продолжением описания разметки интерфейса приложения Android. В предыдущей статье был представлен обзор с примерами возможных типов разметки. В данной статье рассмотрим табличную разметку TableLayout.

Контейнер TableLayout позволяет формировать табличный интерфейс расположения компонентов, в котором View размещаются в строках и столбцах подобно тому, как это оформляется на WEB-странице в теге

. TableLayout не отображает линии обрамления для строк и столбцов. Количество ячеек в разных строках может отличаться. При формировании строки некоторые ячейки можно оставлять пустыми. На следующем скриншоте представлены компоненты вкладки Layouts, которые можно включать в контейнер TableLayout для формирования интерфейса.

Пример табличной разметки, TableLayout

Для наглядного использования контейнера TableLayout создадим layout в рамках приложения p02layout, описанного в начальной части статьи. При создании нового layout определим наименование table (table.xml) и тип контейнера TableLayout. После этого в table.xml создадим интерфейс авторизации пользователя, т.е. включим компоненты ввода логина и пароля с метками пользователя и кнопки выполнения авторизации и закрытия.

Интерфейс формы будет включать 4 строки. В первой строке разместим метку (TextView) и компонент определения логина пользователя (EditText). Во второй строке установим метку (TextView) и компонент определения пароля пользователя (TextPassword). Третья строка останется пустой; она будет определять по вертикали относительное расположение кнопок. В четвертой строке справа разместим кнопки управления (Button).

Добавление строк, TableRow. Для формирования строк интерфейса необходимо использовать объект TableRow, который должен быть дочерним элементом контейнера TableLayout. Каждый компонент TableRow определяет единственную строку в таблице. Строка может не иметь ячеек или иметь одну и более ячеек. Ячейки строки являются контейнерами для других объектов. В ячейку можно вкладывать другой TableLayout или LinearLayout.

Для добавления строки в интерфейс нужно открыть вкладку Layouts в Palette, выделить компонент TableRow и перетащить его либо на страницу, либо в контейнер панели Component Tree. После этого можно таким же образом размещать в строке другие компоненты.

На первом шаге, чтобы не делать лишних телодвижений можно в контейнер поместить сразу 4 строки TableRow. На следующем шаге создадим пустую 3-ю строку с определенным по высоте размером.

Пустая строка. Чтобы создать пустую строку требуемого размера по высоте в 3-ю строку TableRow помещаем контейнер LinearLayout и определяем его размер по высоте; это можно сделать мышкой. Хватаем нижнюю часть компонента (LinearLayout), перемещаем на требуемое расстояние и бросаем (drag-and-drop). Таким образом, можно отделить одну часть интерфейса – компонентов определения учетной записи – от другой (кнопок управления).

Cтрока кнопок управления. Теперь можно в 4-ую строку поместить кнопки управления. Для этого сначала перетаскиваем два пустых компонента Space, и после этого две кнопки «ОК» и «Закрыть». Компонент Space также можно растягивать мышкой по горизонтали. Первый Space будет определять ширину первой колонки для меток, второй Space в совокупности с кнопкой «ОК» будет определять ширину второй колонки, где будут размещаться компоненты ввода параметров учетной записи.

Фоновой цвет строки. Чтобы визуально выделять заголовки или строки таблицы можно определить фоновый цвет TableRow. Для этого следует использовать атрибут «android:background» компонента TableRow.

Растягивание компонентов. Чтобы содержимое компонентов TableRow растянулось на всю ширину макета, необходимо указать в атрибуте «android:stretchColumns» контейнера TableLayout символ ‘*’. Но можно через запятую указать порядковые номера столбцов, которые следует растянуть. Номера столбцов отсчитываются от нуля; остальные колонки занимают минимум места. Например :

Объединение колонок. Смежные ячейки строк можно объединить, чтобы расстянуть компонент на несколько ячеек. Ряды строк объединить нельзя. Слияние ячеек выполняется определением значения целочисленного атрибута «android:layout_span» компонента; layout_span является аналогом атрибута colspan в HTML. Вот как это было выполнено для компонента edLogin в примере :

Рамка в таблице. К сожалению, контейнер TableLayout не может создать рамку для таблицы или ячейки; разработчики Android почему-то не определили эту функциональность. Но данную функциональность Вы можете создать самостоятельно, определяя фоновой цвет таблицы и ячейки.

Ограничение размера колонки. По невнимательности в ячейку таблицы можно вставить очень длинный текст, который растянет ячейку так, что часть текста просто выйдет за пределы экрана. Чтобы избежать данной проблемы необходимо использовать атрибут «android:shrinkColumns» контейнтера TableLayout. С точки зрения программирования приложения данный атрибут управляется методом setColumnShrinkable().

Рассмотрим програмное управление свойством «android:shrinkColumns» на примере. Допустим, что одна из меток в нулевой колонке таблицы имеет очень длинный текст. В интерфейсе мы разместили кнопку btnShrink, по нажатию на которую будем устанавливать флаг «android:shrinkColumns» или сбрасывать. Для этого, необходимо в главном модуле определить логическую переменную (b_shrink), значением которой будет управлять. Код примера представлен в листинге :

Программное создание таблицы. При программном создании таблицы необходимо найти/определить контейнер TableLayout, к которому соответствующим образом добавить необходимое количество строк TableRow. Каждую из строк можно также динамически «оформить». Следующий пример демонстрирует динамическое формирование таблицы, в каждой из ячеек которой размещается изображения.

Интерфейс приложения

Описание возможностей TableLayout и TableRow можно было бы продолжать еще долго. Но, как я полагаю, Вы получили достаточный толчок в понимании того, как можно через интерфейс или программно определить тот или иной атрибут таблицы. Теперь Вам не составит труда самостоятельно соответствующим образом настроить табличный интерфейс приложения.

Возвращаясь к нашему примеру, можно представить внешний вид интерфейса приложения на следующем скриншоте.

Если посмотреть на представление компонентов в дереве (Component Tree), то сразу же бросаются в глаза изображения предупреждения с восклицательными знаками напротив компонентов. В данном случае среда разработки Android Studio нас предупреждает, что текстовые заголовки меток и кнопок необходимо локализовать. Кроме этого необходимо связать метки с компонентами.

Вопрос локализации интерфейса Android Studio рассмотрен на отдельной странице локализациии приложения, а здесь только покажем, как можно бороться с подобными предупреждениями.

Обратите внимание на светло-серый текст возле компонентов tvLogin (@string/lbl_login), tvPassword (@string/lbl_password). Рядом с кнопками подобный текст отсутствует, но имеются предупреждающие сообщения. Это говорит о том, что текст для меток tvLogin и tvPassword используется из ресурсного файла string.xml. Рассмотрим этот файл :

Текст меток

В ресурсном файле определяются наименования ключей и их значения подобно key=value. Для этого в текст файла в формате XML включаются строки с атрибутами (ключами) «name» и соответствующими значеними.

Далее необходимо определенный ключ подключить к метке TextView или к кнопке в опции «android:text». Вот как это выглядит для метки tvLogin :

В описании метки tvLogin определяется идентификатор «android:id», размер метки «android:layout_width», текстовое значение «android:text» и устанавливается связь с компонентом edLogin в опции «android:labelFor». Все эти значения можно определять также через интерфейс в панели атрибутов после выделения компонета.

Текстовое описание интерфейса

В следующем листинге приведено полное описание файла table.xml . Полагаю, что Вам не составит труда самостоятельно подключить локализованные строки к кнопкам.

Старт приложения

Для старта приложения необходимо в активности MainActivity.java в методе onCreate переключиться на интерфейсное описание table.xml :

Помните, что если Вы не корректно завершите работу Android приложения, то IDE может не удалить файлы и поддиректории эмулятора, и при следующем старте приложения эмулятор не запуститься. Как бороться с проблемами запуска эмулятора описано здесь.

Источник

10 приложений для работы с электронными таблицами на Android

Электронные таблицы — это мощный инструмент, используемый представителями многих профессий. С их помощью вы можете сделать многое: упорядочить свои данные, ввести новые и т.д.

Сегодня есть множество подобных приложений и для пользователей мобильных. Конечно, наиболее значимыми фигурами в этой области остаются Microsoft Excel и Google Sheets. Их мы рекомендуем практически всем.

Впрочем, есть и другие варианты, если эти два по какой-то причине вам не подходят. В этом обзоре мы рассмотрим лучшие приложения электронных таблиц для Android.

AndrOpen Office

Цена: Бесплатно.

AndrOpen Office — это первая официальная мобильная версия OpenOffice. Приложение включает в себя: текстовый редактор, инструменты для работы с электронными таблицами и презентациями и некоторые дополнительные функции. С его помощью вы можете даже рисовать и считать. Но мы-то ведём речь об электронных таблицах.

Этот инструмент в AndrOpen Office на удивление хорош и функционален, особенно с учётом того, что это мобильное приложение. Вы можете импортировать файлы Microsoft Excel (XLS и XLT), что делает переход с Microsoft Office сравнительно простым и безболезненным. В целом, AndrOpen Office — отличная альтернатива решениям от Google и Microsoft.

Docs To Go

Цена: Бесплатно / до 1 390 рублей.

Docs To Go — неплохой вариант мобильного офиса. Он включает в себя наиболее значимые элементы, в том числе инструменты для работы с текстами, презентациями и электронными таблицами. Последний поддерживает файлы Microsoft Office Excel, легко настраивается и пригоден для многих относительно простых задач. Электронные таблицы от Docs To Go могут похвастаться наличием 111 различных функций, включая различные настройки столбцов и сортировку.

Google Sheets

Цена: Бесплатно.

Google Sheets — один из двух крупнейших конкурентов в области электронных таблиц на мобильных устройствах. Он обладает множеством функциональных возможностей: подключается к Google Диску, имеет кроссплатформенную поддержку (через интернет), совместим с файлами Microsoft Office. Многим пользователям особенно нравятся его возможности совместной работы: несколько человек могут одновременно работать с одной и той же таблицей в режиме реального времени. Кроме того, Google Sheets может похвастаться множеством функций и настроек.

Конечно, Excel является более мощным приложением для работы с электронными таблицами, но зато Google Sheets намного доступнее и проще для новичков. Приложение совершенно бесплатно и может использоваться с Google Drive, где вам бесплатно будут доступны 15 ГБ пространства.

Microsoft Excel

Цена: Бесплатно / до 339 рублей.

Если сравнивать функциональные возможности различных приложений для работы с электронными таблицами, то, пожалуй, лучшим из лучших можно назвать Microsoft Excel. Это очень мощный инструмент, не случайно множество предприятий выбрали именно его для своей работы. Мобильная версия, пригодная для простых вещей, бесплатна, но рекомендуем вам приобрести подписку на Microsoft 365, чтобы разблокировать лучшие функции. Существует вариант однократной оплаты, но только для настольных компьютеров.

OfficeSuite

Цена: Бесплатно / до 3 899 рублей.

OfficeSuite — один из интереснейших конкурентов Microsoft Office и Google Drive для мобильных устройств. Он существует уже давно и обзавёлся множеством функций. С точки зрения удобства использования, это приложение удивительно хорошее, хотя в бесплатной версии имеется лишь самый необходимый минимум функций.

Подписка стоимостью 3 899 рублей в год избавит вас от рекламы, добавит 154 формата документов и откроет два десятка дополнительных функций. Хорошая новость заключается в том, что лицензия пригодна и для мобильных устройств (Android и iOS), и для ПК, поэтому заплатить вам придётся только один раз.

Polaris Office

Цена: Бесплатно / до 3 190 рублей.

Polaris Office — ещё одна более старая и более доработанная альтернатива для Microsoft Office и Google Drive. Это приложение существует, кажется, целую вечность и имеет множество функций. С его помощью вы можете использовать электронные таблицы для разных целей, включая построение графиков.

Polaris Office имеет приятный и довольно современный интерфейс в стиле Material Design. Увы, приложение содержит ошибки, в противном случае его можно было бы считать очень хорошим вариантом.

Цена: Бесплатно / 10 $ с пользователя в месяц.

Quip — отличный вариант для бизнеса. Для своей цены он имеет приличное количество современных функций, в том числе возможность редактировать документы совместно с другими людьми и общаться с ними напрямую через приложение. Quip имеет более 400 функций для электронных таблиц и позволяет встраивать их в любые документы. Приложение ориентировано в первую очередь на корпоративных пользователей, но вы можете использовать его и для личных целей.

SmartOffice

Цена: Бесплатно.

SmartOffice существует уже давно и является одним из наиболее зрелых приложений для работы с электронными таблицами. Список его функций довольно длинный, но, в целом, оно не такое мощное и привлекательное, как многие его конкуренты. Мы по-прежнему считаем, что Google Sheets лучше, но SmartOffice — хорошая альтернатива, особенно если вы хотите редактировать таблицы в автономном режиме.

SmartOffice совершенно бесплатен. Более того, приложение использует Dropbox и Google Drive в качестве своего облачного хранилища, поэтому вам не нужно платить ни за что. В целом, SmartOffice не самый мощный, но в силу отсутствия платы должен понравиться многим пользователям.

Table Notes

Цена: Бесплатно / до 1 499 рублей.

Table Notes — это нечто немного другое. Большинство приложений для электронных таблиц являются частью больших офисных пакетов. Table Notes не является офисным приложением. Более того, он больше похож не на приложение электронных таблиц, а на приложение для заметок с функцией электронных таблиц. Table Notes очень прост и не поразит вас сотнями функций. Зато с его помощью вы сможете добавлять фотографии, аудио и рисунки.

Приложение поддерживает подписи, даты и время. Наконец, оно позволяет вводить математические формулы для более глубокой интеграции. Table Notes имеет единый ценник, а не только подписки, но при этом вы можете не увидеть многих функций, включая возможность импорта документов Excel. В целом, это неплохое приложение.

WPS Office

Цена: Бесплатно / до 29 990 рублей.

WPS Office долгое время считался лучшим бесплатным офисным приложением. Оно и в наши дни бесплатно, но за некоторые дополнительные функции (и удаление рекламы) вам придётся заплатить путём приобретения подписки. WPS Office — пакет с множеством различных функций, поддержкой Microsoft Excel и интеграцией со Slack, Zoom и Google Drive.

Большинство жалоб пользователей связано с рекламой в бесплатной версии. Жалобы оправданы, потому что реклама действительно раздражает, но в остальном приложение работает без нареканий, выполняя всё то, что обещано разработчиком.

Источник

Читайте также:  Sony xperia c2305 android
Оцените статью