Как сделать табличный список

 

Кроме использования стандартных виджетовсписков можно создать список, определив собственную разметку только для одной строки этого списка. Такой подход используется для связывания данных, представленных в виде плоских таблиц. Для связывания табличных данных используются классы SimpleAdapter И SimpleCursorAdapter.

SimpleAdapter— адаптер для связывания статических данных с представлением, определенным в XMLфайле. Конструктор класса выглядит так:

SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String [] from, int [] to)

Данные представляются как список объектов мар, которые, в свою очередь, содержат данные для каждой строки: множества элементов ключзначение, где ключ — это имя поля, значение — содержимое поля. То есть каждый элемент в ArrayList соответствует одной строке данных в списке.

Класс SimpleCursorAdapter применяют для связывания представлений с базами данных.

В качестве примера разработаем приложение, отображающее статические данные в табличном виде. Создайте новый проект и в диалоге Create New Project введите следующие значения:

  • Project name — ListContact;
  • Application name — Contacts Sample;
  • Package name — соm.samples .listcontact;
  • Create Activity — ListContactActivity.

В приложении будем отображать список контактов, приведенный ранее, но в строке будет два столбца: поле Name с выравниванием влево и поле Phone с выравниванием вправо.

Для этого в файле разметки определим строку с двумя элементами TextView, как показано в листинге:

Листинг. Файл разметки main.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:textSize="18sp"/> <TextView android:id="@+id/phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:textSize="18sp" android:paddingRight="10px"/> </RelativeLayout>

Для хранения строки, представляющей контакт, создадим отдельный класс contactitem, расширяющий класс наэпмар, в котором определим константы name и phone с именами полей и конструктор с параметрами — имя контакта и телефон. Код класса представлен в листинге:

Листинг. Класс Contactitem

package com.samples.listcontact; import java.util.HashMap; public class ContactItem extends HashMap<String, String> { private static final long serialVersionUID = 1L; public static final String NAME = "name"; public static final String PHONE = "phone"; public ContactItem(String name, String phone) { super(); super.put(NAME, name); super.put(PHONE, phone); } }

В классе деятельности ListContactActivity заполним данными объект ArrayList и отобразим его в виде таблицы в окне деятельности:

Листинг. Класс деятельности ListContactActivity

package com.samples.listcontact; import java.util.ArrayList; import android.app.ListActivity; import android.os.Bundle; import android.widget.ListAdapter; import android.widget.SimpleAdapter; public class ListContactActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ArrayList<ContactItem> list = new ArrayList<ContactItem>(); list.add(new ContactItem("Jacob Anderson", "412412411")); list.add(new ContactItem("Emily Duncan", "161863187")); list.add(new ContactItem("Michael Fuller", "896443658")); list.add(new ContactItem("Emma Greenman", "964990543")); list.add(new ContactItem("Joshua Harrison", "759285086")); list.add(new ContactItem("Madison Johnson", "950285777")); list.add(new ContactItem("Matthew Cotman", "687699999")); list.add(new ContactItem("Olivia Lawson", "161863187")); list.add(new ContactItem("Andrew Chapman", "546599645")); list.add(new ContactItem("Daniel Honeyman", "876545644")); list.add(new ContactItem("Isabella Jackson", "907868756")); list.add(new ContactItem("William Patterson", "687699693")); list.add(new ContactItem("Joseph Godwin", "965467575")); list.add(new ContactItem("Samantha Bush", "907865645")); list.add(new ContactItem("Christopher Gateman", "896874556")); ListAdapter adapter = new SimpleAdapter(this, list, R.layout.main, new String[] {ContactItem.NAME, ContactItem.PHONE}, new int[] {R.id.name, R.id.phone}); setListAdapter(adapter); } }

Внешний вид приложения со списком контактов представлен на рисунке:

Список с собственной разметкой


Источник: http://androidfanclub.ru/programming/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0-%D1%81-%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%82%D0%BA%D0%BE%D0%B9


Рекомендуем посмотреть ещё:


Закрыть ... [X]

Описания графических элементов SmartArt - Служба поддержки Как сделать крышу для дачного дома

Как сделать табличный список 8.2. Как создать форму списка выбора для табличной части
Как сделать табличный список Создание списка с собственной разметкой Фанклуб
Как сделать табличный список Календарь: Таблица или Список? / Хабрахабр
Как сделать табличный список Cached
Как сделать табличный список Декоративные колодцы своими руками: фото идеи дизайна
Как сделать табличный список Инструкции по применению
Как сделать табличный список Как восстановить аккумулятор шуруповерта - Форум
Как сделать табличный список Как оформить титульный лист к работе ученика или
Как сделать табличный список Как размягчить кожу Как сделать кожу мягкой
Как сделать Ловец Снов своими руками Мастер-класс и идеи Как сделать разные колонтитулы в ворде 2010? - Программы Как украсить детский торт в домашних условиях: рецепты с фото Медовое печенье, рецепты с фото на ПРЯНИКИ. ПРЯНИЧНОЕ ТЕСТО. Сахарные помады Порядок выплаты компенсации инвалидам за самостоятельно

Похожие новости