Делаю приложение "Список дел/задач".
Есть модель, которая содержит заголовок и приоритет задачи, а данные берет из бд. В зависимости от приоритета задачи, я меняю дизайн на текущей активити. К примеру, если приоритет задачи высокий, то делаю красный фон.
Модель:
public class Task {
private String mTitle;
private int mPriority;
public Task(String title, int priority) {
this.mTitle = title;
this.mPriority = priority;
}
public String getTitle() {
return mTitle;
}
public void setTitle(String mTitle) {
this.mTitle = mTitle;
}
public int getPriority() {
return mPriority;
}
public void setPriority(int mPriority) {
this.mPriority = mPriority;
}
}
В поле mPriority я храню число, от 0 до 2.
0 - низкий приоритет, 1 - средний, 2 - высокий
И далее уже в активити через switch делаю что мне надо
switch(task.getPriority) {
// Низкий приоритет задачи
case 0:
// Сделать фон допустим зеленым.
// еще какие то действия с дизайном.
break;
// Средний приоритет задачи
case 1:
// Тут код
break;
// Высокий приоритет задачи
case 2:
// Тут код
break;
}
Понятное дело что хранить число приоритета и далее делать проверки в switch не правильно. Ведь вдруг я захочу добавить еще один приоритет: "3 - Супер высокий приоритет", тогда мне в каждом месте где используется приоритет задачи придется редактировать код.
Только учусь программированию, по этому объясните на "пальца", как решаются такие проблемы :)
Пока я думаю что нужно создать еще одну модель TaskPriority, а в ней поля title, color;
А в самой модели Task, за место поля int mPriority, сделать TaskPriority mPriority;
Но не уверен что это решают таким путем.
Основное - нужно разделять данные от представления. Их нельзя друг с другом смешивать.
1) У вас есть Model
- они же данные (то как вы отображаете данные из БД в модель - это отдельная большая песня)
2) Далее у вас View
- то как вы собираетесь отображать/представлять/показывать
3) Как теперь сделать общение между моделью и представлением? (model vs. view
)
В п. 3 начинается разброд и шатание. Все упирается в концепт, если угодно в философию, если быть точнее называется архитектурный паттерн.
Отголоски этого разброда и шатания можно почитать погуглив ключевые слова:
Для Android сейчас кошерным является концепция MVVM, впрочем лет 5 назад все верещали от MVP, а лет 10 назад с экранов не сходил MVC, но ничего. Еще через пару лет - придумают что нибудь другое.
В общем реализуйте MVVM, тем более что Android заточен под него.
Практическое руководство здесь
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В вузе задали задачу на java, подскажите как её решить? Или может какие-нибудь обучающие материалы о том, как решать подобныеДалее текст на английском:
мне нужно что бы при нажатии на кнопку JButton открывалась нужая JFrame например у меня есть окно с кнопкой я нажимаю на кнопку и открыается нужная...
Олимпиада ориентирована на Паскаль, но я его плохо знаю, зато знаю JavaОдно из условий на олимпиаде это работа с файлами, то есть в текстовый...
Как удалить в linux ubuntu переменную окружения JAVA_HOME (при том, что jdk/jre не установлены)При попытке изменить переменную через export или удалить ее через...