2

私の目標は、すべてのカレンダーイベントをカレンダーから取り出し、探している出席者でフィルタリングすることです。言い換えれば、マイヤー氏が出席しているすべてのイベントで、この問題を解決してイベントを取得したいと思っています。カーソルにcurCalendarがありますが、出席者の電子メールでcurCalendarをフィルタリングするにはどうすればよいですか?すべてのイベントIDを使用して配列を作成すること、またはカーソルcurCalendarの行を削除できるかどうかを考えていました。さて私は助けが必要です。特別な出席者の電子メールでcurCalendarをフィルタリングするにはどうすればよいですか...

if(!strEmailFilter.isEmpty()){

            //there is an Email Filter - look for a special Attendee within all Events...
            curCalendar.moveToFirst();
            index = curCalendar.getColumnIndex(CalendarContract.Events._ID);
            strEventId = curCalendar.getString(index);
            strEmail = openCalendar.getEmailfromAttendee(this, strEventId);
            Integer i= 0;
            if (strEmail.equals(strEmailFilter)){
                //Attendee email is equal to filter email
                //Add row to CurCalendarGefiltert
                strEventsGefiltert [i] = strEventId;

            }
            while (curCalendar.moveToNext()) {
                i = i +1;
                index = curCalendar.getColumnIndex(CalendarContract.Events._ID);
                strEventId = curCalendar.getString(index);
                strEmail = openCalendar.getEmailfromAttendee(this, strEventId);
                if (strEmail.equals(strEmailFilter)){
                    strEventsGefiltert [i] = strEventId;
                //  curCalendarGefiltert.

                }
            }

        }

                 MyCalendarAdapter myCalendaradapter = new MyCalendarAdapter (
                          this,
                          R.layout.terminzeile_google,
                          curCalendar,
                          new String[] {CalendarContract.Events.TITLE, CalendarContract.Events.DESCRIPTION},
                          new int[] {R.id.textViewTitle, R.id.textViewProjekt}

                          );





        /*
        myClientsadapter.setViewBinder(new MyDataAdapter.ViewBinder() {
            public boolean setViewValue(View view, Cursor cursor, int columnIndex) {


                if(columnIndex == 13) {
                        String strBeginn = cursor.getString(columnIndex);
                        CheckBox cb = (CheckBox) view;
                        int intbezahlt = cursor.getInt(13);
                        cb.setChecked(intbezahlt > 0);
                        return true;
                }

                String str = cursor.getString(columnIndex);
                return false;
            }
        });


        */
        listViewTermine.setAdapter(myCalendaradapter);
4

1 に答える 1

1

見つかった各イベントのeventIdに基づいて、コンテンツURI「CalendarContract.Attendees.CONTENT_URI」を使用して参加者テーブルを検索します。一致するものが見つかったら、イベントの値をキャプチャするだけです。

つまり、CalendarContractを介してイベントを読み取るために作成したのと同様のメソッドを作成する必要があります。

出席者テーブルにアクセスする方法の詳細については、次のリンクを確認してください: https ://android-dot-google-developers.appspot.com/reference/android/provider/CalendarContract.Attendees.html

于 2013-03-05T01:46:50.080 に答える