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

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

Войти
Регистрация
Восстановить пароль
 
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
#1

Вывод записей с календаря - Программирование Android

04.04.2014, 11:37. Просмотров 563. Ответов 0
Метки нет (Все метки)

Доброго времени суток.
Пишу аппликацию, которая с Гугл календаря выводит текущую запись(в данное время), но выводится только запись с одного календаря( а у меня их 5, для примера).

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
public class Main extends Activity {
 
    //TextView mInfo;
    TextView mEvents;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.main);
        //mInfo = (TextView)findViewById(R.id.info);
        mEvents = (TextView)findViewById(R.id.events);
        
        String[] calendarName = {"Calendar1", "Calendar2", "Calendar3", "Calendar4", "Calendar5"};
        
        readCalendars(calendarName);
    }
    
    private void readCalendars(String[] calendarName)
    {
        String[] projection =
                new String[]{
                        CalendarContract.Calendars._ID,
                        CalendarContract.Calendars.NAME,
                        CalendarContract.Calendars.ACCOUNT_NAME,
                        CalendarContract.Calendars.ACCOUNT_TYPE};
        Cursor calCursor =
                getContentResolver().
                        query(CalendarContract.Calendars.CONTENT_URI,
                                projection,
                                CalendarContract.Calendars.VISIBLE + " = 1",
                                null,
                                CalendarContract.Calendars._ID + " ASC");
        long calId = -1;
        //String calendarAccount = "";
        for(int i = 0; i < calendarName.length; i++) {
        if (calCursor.moveToFirst()) {
            do {
                long id = calCursor.getLong(0);
                String calName = calCursor.getString(1);
                    if(calName != null && calName.equals(calendarName[i]))
                {
                    //calendarAccount = calName + " " + calCursor.getString(2);
                    calId = id;
                    break;
                }
            } while (calCursor.moveToNext());
        }
        }
        //mInfo.setText(calendarAccount);
        if(calId != -1)
        {
            Calendar currTime = Calendar.getInstance();
            currTime.add(Calendar.HOUR, -4);
            long begin = currTime.getTimeInMillis();
            currTime.add(Calendar.DATE, 30);
            long end = currTime.getTimeInMillis();
            String[] proj =
                    new String[]{
                            CalendarContract.Instances._ID,
                            CalendarContract.Instances.BEGIN,
                            CalendarContract.Instances.END,
                            CalendarContract.Instances.EVENT_ID,
                            CalendarContract.Instances.DESCRIPTION,
                            CalendarContract.Instances.EVENT_LOCATION,
                            CalendarContract.Instances.TITLE};
 
 
            Uri.Builder builder = CalendarContract.Instances.CONTENT_URI.buildUpon();
            ContentUris.appendId(builder, begin);
            ContentUris.appendId(builder, end);
 
            Cursor cursor = getContentResolver().query(builder.build(),
                    proj, CalendarContract.Instances.CALENDAR_ID + " =" + calId,
                    null, "begin ASC");
 
            String events = "";
            if (cursor.getCount() > 0)
            {
                if(cursor.moveToFirst())
                {
                    do
                    {
                        long eventId = cursor.getLong(3);
                        events += getEventInfo(eventId,cursor.getLong(1),cursor.getLong(2),cursor.getString(4),cursor.getString(5),cursor.getString(6)) + "\n";
                    } while(cursor.moveToNext());
                }
            }
            mEvents.setText(events);
        }
    }
    
    @SuppressLint("SimpleDateFormat")
    private String getEventInfo(long eventId,long startTime, long endTime,String description, String location,String title)
    {
            String eventInfo = "";
            {
                DateFormat df = new SimpleDateFormat("HH:mm");
                String start = df.format( new Date(startTime));
                String end = df.format( new Date(endTime));
                eventInfo = start + "-" + end + " Аудитория: "+ location + "\nЛекция: " + title + "\nПреподаватель: " + description;
            }
        return eventInfo;
    }
}
В таком раскладе, выводит даныне только с последнего календаря.
Читал про ListView, переделал код под него, но получал ошибки, мол аппликация совсем не запускалась.
Примерно так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        ListView listView = (ListView) findViewById(R.id.listView);
    final ArrayList<String> mEvents = new ArrayList<String>();
    final ArrayList<String> mInfo = new ArrayList<String>();
    final String[] calendarName = {"Calendar1", "Calendar2", "Calendar3", "Calendar4", "Calendar5"};
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        final ArrayAdapter<String> adapter;
        adapter = new ArrayAdapter<String>(this,
                R.id.listView, mEvents);
        listView.setAdapter(adapter);
        
        readCalendars(calendarName);
    }
 
        private void readCalendars(String[] calendarName) {
        //Тут всё так-же как и в предыдущем коде, только вместо
                mEvents.setText(events);
                применяю
                mEvents.add(events);
    }
Посоветуйте, пожлуйста, как можно реализовать данную аппликацию или исправить ошибки..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2014, 11:37     Вывод записей с календаря
Посмотрите здесь:

Написание календаря на Android - Программирование Android
Здравствуйте, очень нужна ваша помощь: для приложения нужен календарь на пол экрана, желательно написанный с нуля, а не встроенный. При...

Вывод записей в виде календаря - PHP
http://auto.obzor.ru/index.asp?act=news&amp;n=14324 Подскажите пожалуйста по какому принципу работает календарь записей как например на...

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

Вывод календаря в консоль - C#
Есть такое задание, обработать строку получаемую от пользователя в виде dd mm yyyy и вывести все в виде красивого календаря. Первую часть...

Вывод на таблицу по дате календаря - Delphi
Подскажите, пожалуйста, как можно сделать выборку...? На форме расположены компоненты DBGrid и MonthCalendar. Необходимо, указывая на...

Вывод календаря на заданный месяц - C#
Здравствуйте. Дали задание, никак не могу с ним совладать... Задана дата в виде месяц, год. Вывести календарь на заданный месяц. Да такой,...

Вывод календаря с привязкой к базе данных - PHP
Добрый день, Господа. Подскажите пожалуйста как сделать выборку. хочу в таблицу выводить столбец &quot;avg&quot; по месяцам см. на рисунке...

Вывод уникальных записей с таблицы и суммирование дублированых записей с выводом колличества - PHP БД
Доброго времени суток форумчане! Не получается фильтровать записи при выводе с таблицы MYSQL. Нужно вывести уникальные модели и...

Вывод записей - PHP
Структура бд - таблица &quot;главная&quot;, в которой находится базовая инфа, и 9 таблиц. В главной таблице есть поле, в котором написаны имена...

MySQL Вывод записей из БД - PHP БД
Помогите разобраться с проблемкой. Нужно вывести абсолютно все поля из таблицы MySQL с именами столбцов Вот код: $query = &quot;SELECT *...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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