Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.82
alla_tre
1 / 1 / 0
Регистрация: 25.05.2013
Сообщений: 12
#1

Написание календаря на Android - Программирование Android

07.12.2013, 22:40. Просмотров 3518. Ответов 5
Метки нет (Все метки)

Здравствуйте, очень нужна ваша помощь: для приложения нужен календарь на пол экрана, желательно написанный с нуля, а не встроенный. При заходе в приложение, календарь должен показывать текущий месяц с подсвеченной текущей датой, должна быть возможность либо "прокручиванием", либо другими кнопками менять месяц. Также можно выбирать даты нажатием (с соответствующими визуальными эффектами). На андроид пишу первый раз, поэтому имеется несколько вопросов:
1) сам календарь думала реализовать как набор 42 кнопки (6 рядов по 7 штук, в одной ряду дни от пнд до воскресенья) на TableLayout, не знаю, хороший ли это вариант, может кто-то посоветует лучше?
2) при нажатии на кнопку с датой она должна подсвечиваться и оставаться другого цвета после нажатия. Нашла про селектор, пробовала разные комбинации со state_pressd, state_selected и т.д., но никак не получается этого добиться. Когда нажимаешь, она меняет цвет, но после того как отпустишь, возвращается к исходному. В итоге в обработчик нажатия кнопки запихнула функцию SetActivated(true), с которой в селекторе с state_activated всё нормально, но получается, что при нажатии на другую кнопку надо сбрасывать Activated у предыдущей, а как это реализовать, не знаю. И вообще, стоит ли использовать setActivated?
3) есть ли способ создать 42 кнопки программно? И как лучше организовать присвоение кнопкам чисел месяца?

Очень надеюсь на Ваше небезразличие.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 22:40     Написание календаря на Android
Посмотрите здесь:

Android Studio, по поводу календаря? - Программирование Android
Всем доброго времени суток) Скажите пожалуйста люди, как в Android Studio сделать календарь? Но чтобы он находился в кнопке и когда на него...

Создание календаря - Программирование Android
Из каких компонентов кроме CalendarView создаётся календарь? Хочу создать календарь наподобие стандартного в Android (клацнул на дату -...

Парсинг данных с календаря - Программирование Android
Всем доброго времени суток! Обращаюсь к Вам с таким вопросом. Совсем недавно начал по туториалам учить и разбираться в парсинге, но...

Создание кастомного календаря с динамическими данными - Программирование Android
Раз с одной проблемой мне тут помогли, значит попробую еще раз может и тут мне чем то помогут (: В общем проблема состоит в том что есть...

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

Создание календаря с горизонтальным и вертикальным листанием - Программирование Android
Всем здравствуйте. Задача заключается в следующем. Нужно создать календарь, который при горизонтальных движениях пальцем будет...

android:theme="@android:style/Theme.Dialog" - Программирование Android
android:theme="@android:style/Theme.Dialog" как при таком отображение активности можно избежать затемнение( или что там с ней происходит)...

Написание игры - Программирование Android
Как можно реализовать игру. Выложил в приложении фрагментик.

Написание чата с нуля - Программирование Android
ХОЧУ СОЗДАТЬ СВОЙ ЧАТ НА АНДРОИД , ЧТОБ КАЖДЫЙ МОГ СКАЧИВАТЬ ЗАРЕГИСТРИВОВАТЬСЯ, ПИСАТЬ ЛИЧНЫЕ СООБЩЕНИЯ, ЗАГРУЖАТЬ АВАТАРКУ И ТД.. ...

Написание IRC клиента - Программирование Android
Господа, в общем мне необходимо написать простейший клиент IRC на андроид. Эклипс, андроид сдк, все дела давно стоят, но врубиться в тему...

Написание своего клиента VK - Программирование Android
Доброго времени суток. С недавнего времени начал изучать разработку android приложений, пришла идея попробовать сделать свой клиент для...

Написание простого калькулятора - Программирование Android
Решил начать учиться писать приложения с калькулятора. Проблем с выводом чисел от 1-9 не было. Когда подошел черед арифметических...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
08.12.2013, 03:26     Написание календаря на Android #2
сам календарь еще не писал (на андроиде), но...
1) вполне можно. Я бы попытался нарисовать самому на канвасе - будет "гибче" дизайн, легче вставить картинки, но с кнопками проще.
2) можно и так. запоминаете в общей переменой прошлую нажатую и при следующем нажатии (если !=nul) отжимай ее. могу еще предложить что-то вроде этого:
((LinearLayout) findViewById(R.id.LinearLayout_1)).setBackgroundResource(R.drawable.selector_pressed);
3.1) знаю что можно задать програмно.
3.2) циклом по дням в пределах месяца. ловиш начальный день недели этого месяца, дней в прошлом месяце... а дальше простая формула. вполне можно зафиксировать названия кнопок как bt_1_1..bt_1_7, bt_2_1..bt_6_1 и заполнять их используя имена

Добавлено через 4 минуты
3.1) сам не пробовал, но возможно поможет http://startandroid.ru/ru/uroki/vse-...ilozhenii.html
alla_tre
1 / 1 / 0
Регистрация: 25.05.2013
Сообщений: 12
08.12.2013, 18:26  [ТС]     Написание календаря на Android #3
Спасибо огромное!
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
10.12.2013, 11:21     Написание календаря на Android #4
Лично я для календаря юзал GridView, генерировал одним циклом 42 кнопки. Самая сложность была в том, чтобы узнать день недели первого дня месяца, пришлось заюзать библиотеку joda-time, так как в стандартных функциях календаря такого я просто не мог найти (если кто знает - подскажите).

Для нажатий и подсветки одного дня, а также выделения недели или всего месяца сразу, я использовал кастомный item + немного шаманства.
Кастомный item подставлял в BaseAdapter GridView и менял у него бекграунд. У меня правда там еще иконки разные алармов были. А чтобы убрать кликнутый месяц - я просто пробегался по 42 дням и очищал бекграунд)

Ну а дальше уже дело техники)
Если возникнут вопросы - пишите.

Добавлено через 50 минут
чтобы календарь был на полэкрана, то надо создать parent например LinearLayout, положить в него два лайаута и задать им weight = 1.

Чтобы подстроить высоту GridView под высоту экрана, необходимо высчитать высоту LinearLayout. Это возможно сделать только после отрисовки LinearLayout.

Поэтому юзаем простую штуку LinearLayout.post(new Runnable( ... здесь получаем getMeasureHeight, делим его на количество строк календаря и применяем к item.... ));
alla_tre
1 / 1 / 0
Регистрация: 25.05.2013
Сообщений: 12
10.12.2013, 22:10  [ТС]     Написание календаря на Android #5
И Вам спасибо огромное! Думаю, что обязательно обращусь к Вам с вопросами.
alla_tre
1 / 1 / 0
Регистрация: 25.05.2013
Сообщений: 12
22.12.2013, 01:38  [ТС]     Написание календаря на Android #6
Кое-как разбираюсь с чужими подсказками, в итоге сделала календарь через GridView, где каждый item - LinearLayout c TextView на нём. Вроде всё более-менее нормально, но есть несколько разномастных вопросов:
1. Селектор. Взяв за основу http://stackoverflow.com/questions/7...-draw-dividers, а затем меняя последовательность состояний в селекторе, всего раз удалось добиться, чтобы кнопка после нажатия оставалась другого цвета. К сожалению, этот момент канул в лету( Я не знаю, в чём дело, я уже и селектор меняла, и GridView настраивала по-разному, и всё равно не выходит толком. Хотелось бы, чтобы кто-нибудь или указал, как правильно, или предложил альтернативный вариант)
2. Реально ли сделать, например, чтобы при движении пальцем на GridView, например, слева направо его содержимое менялось? Желательно, с какими-нибудь красивыми визуальными эффектами, если там есть такая возможность (что-то наподобие проигрывателя на андроиде: проводишь слева направо по обложке композиции - переключает на следующую, обложечка при этом мягко заменяется на другую). Нашла ViewPager, но не знаю, получится ли с ним сделать (и если получится, то сколько надо будет создавать фрагментов - 3 с текущим, предыдущим и следующим месяцами, а потом динамически их менять??)
3. TextView.setText. Метод работает очень странно, на одним строках работает, на других вылетает, на одних CharSequence работает нормально, на других - вылетает. В чём может быть дело?

Заранее спасибо.
Yandex
Объявления
22.12.2013, 01:38     Написание календаря на Android
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru