Задачи для мобильного сотрудника (часть 2)

 Продолжение, первую часть читайте здесь.

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

Fba (в текущей версии 1.0.1)  поставляется с двумя предопределенными темами «темная» и «светлая», по умолчанию генератор для новых проектов выставляет светлую тему, сменить ее на темную очень просто.

Откройте файл values\styles.xml и исправьте

1
<style name="AppTheme" parent="AppBaseTheme.Light">
<style name="AppTheme" parent="AppBaseTheme.Light">

На

1
<style name="AppTheme" parent="AppBaseTheme">
<style name="AppTheme" parent="AppBaseTheme">

Запустите приложение и вы увидите результат:

    

И, естественно, вы можете настроить свою тему, но об этом как-нибудь позже.

Улучшаем функциональность приложения

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

Следующий код:

1
2
// выбрать все задачи из локальной базы данных
List<ExTableTasks> data = dao.select();
// выбрать все задачи из локальной базы данных
List<ExTableTasks> data = dao.select();

Заменить на:

1
2
3
4
5
6
// фильтр: выбрать только незавершенные задачи
HashMap<String,Object> mapFilter = new HashMap<String, Object>();
mapFilter.put(ExTableTasks.FIELD_NAME_COMPLETE, false);
 
//Выбрать с учетом фильтрации и сортировки по сроку исполнения
List<ExTableTasks> data = dao.select(mapFilter, ExTableTasks.FIELD_NAME_DEADLINE);
// фильтр: выбрать только незавершенные задачи
HashMap<String,Object> mapFilter = new HashMap<String, Object>();
mapFilter.put(ExTableTasks.FIELD_NAME_COMPLETE, false);

//Выбрать с учетом фильтрации и сортировки по сроку исполнения
List<ExTableTasks> data = dao.select(mapFilter, ExTableTasks.FIELD_NAME_DEADLINE);

Чтобы показать один простой пример форматирования значений в списках, давайте изменим форматирование даты – не будем показывать год и время.
Замените создание адаптера:

1
2
3
// создать адаптер для отображения данных таблицы
MetaArrayAdapter<ExTableTasks> adapter = new MetaArrayAdapter<ExTableTasks>(
                                this, ExTableTasks.class, data, R.layout.list_item, from, to);
// создать адаптер для отображения данных таблицы
MetaArrayAdapter<ExTableTasks> adapter = new MetaArrayAdapter<ExTableTasks>(
                            	this, ExTableTasks.class, data, R.layout.list_item, from, to);

на следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
// Форматер значений: установим свой только для дат, которые со временем
// – будут показаны с отсечением времени и года
FieldFormatter ff = new FieldFormatter.Builder()
.setDateTimeFormat("dd MMMM").create();
 
//Создадим построитель View и назначим ему наш форматер
MetaAdapterViewBinder metaBinder = new MetaAdapterViewBinder(this,
                                ExTableTasks.class, from, to);
metaBinder.setFieldFormatter(ff);
 
// создать адаптер для отображения данных таблицы
MetaArrayAdapter<ExTableTasks> adapter = new MetaArrayAdapter<ExTableTasks>(
                                data, R.layout.list_item, metaBinder);
// Форматер значений: установим свой только для дат, которые со временем
// – будут показаны с отсечением времени и года
FieldFormatter ff = new FieldFormatter.Builder()
.setDateTimeFormat("dd MMMM").create();

//Создадим построитель View и назначим ему наш форматер
MetaAdapterViewBinder metaBinder = new MetaAdapterViewBinder(this,
                            	ExTableTasks.class, from, to);
metaBinder.setFieldFormatter(ff);

// создать адаптер для отображения данных таблицы
MetaArrayAdapter<ExTableTasks> adapter = new MetaArrayAdapter<ExTableTasks>(
                            	data, R.layout.list_item, metaBinder);

Результат вы видите на следующей картинке:

Похожие записи: