2017-01-27 1 views
1

Dies ist mein Code und ich versuche, Kalenderereignisse zu lesen und nur das Datum, Monat und Jahr des Ereignisses in drei separate Variablen zu erhalten .beim Lesen von Kalenderereignissen, wie Datum in Datum Monat Jahr zu trennen und in drei Variablen zu speichern

public void read_calendar(){ 
    ContentResolver cr = getContentResolver(); 
    Cursor cursor = cr.query(Uri.parse("content://com.android.calendar/events"), new String[]{ "calendar_id", "title", "description", "dtstart", "dtend", "eventLocation" }, null, null, null); 
    //Cursor cursor = cr.query(Uri.parse("content://calendar/calendars"), new String[]{ "_id", "name" }, null, null, null); 
    String add = null; 
    cursor.moveToFirst(); 
    String[] CalNames = new String[cursor.getCount()]; 
    int[] CalIds = new int[cursor.getCount()]; 
    for (int i = 0; i < CalNames.length; i++) { 
     CalIds[i] = cursor.getInt(0); 
     CalNames[i] = ""+new Date(cursor.getLong(3))+"\n"+ cursor.getString(1); 
     if(add == null) 
      add = CalNames[i]; 
     else{ 
      add += CalNames[i]; 
     } 
     textView3.setVisibility(View.VISIBLE); 
     textView3.setText(add); 

     cursor.moveToNext(); 
    } 
    cursor.close(); 
} 
+0

Verwendung "TTMMJJJJ", meine aktualisiert Besuche am – siva35

+0

chenged ........ – siva35

Antwort

0

Dies, wie Sie in der Lage können Datum Monat und Jahr nach Split.

 CalNames[i] = "" + new Date(cursor.getLong(3)); 
       DateFormat sdf; 

       try { 


        // Tue Jan 27 00:00:00 GMT+05:30 2016 
        sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH); 
        Date date = sdf.parse(CalNames[i]); 
        //sdf = new SimpleDateFormat("EEEE MMM yyy", Locale.ENGLISH); 
sdf = new SimpleDateFormat("dd MM yyyy", Locale.ENGLISH); 
        CalNames[i] = sdf.format(date); 
        String[] datesArray = CalNames[i].split(" "); 
        String _date = datesArray[0]; 
        String _month = datesArray[1]; 
        String _year = datesArray[2]; 
    //    Log.e("DATE S:", ":" + CalNames[i]); 
        Log.d("DATE S:", _date + "\n" + _month + "\n" + _year); 

       } catch (ParseException e) { 
        e.printStackTrace(); 
       } 
+0

in diesem Code _date "Freitag" bekam, _month bekam "Jan". Ich brauche die Nummer. Beispiel: Die Ausgabe von _date sollte den Tag des Monats ausgeben ("27"), _Monatausgabe sollte die Monatsnummer ausgeben ("1"). _Jahr ist der richtige ("2017"). können Sie den Code bearbeiten, um die Daten auszugeben, nicht die Zeichenfolge –

+1

Ich überprüft den aktualisierten Code und Zeichenfolge _date, _month, _year erhält keine Werte. Ich überprüfte sie, indem ich dort Werte in eine textbox.texbox eintrug. nichts zeigt. letzte Zeit zeigt es die Datum- und Monatszeichenkettenwerte an. Ich denke, Versuchmethode funktioniert nicht. –

+0

hat es funktioniert. aber meine Notwendigkeit ist nicht abgeschlossen. Ich muss alle Kalenderereignisse und nach Jahr, Monat, Datum sortieren und sortieren und mehrere Textansichten nach Datum Monat und Jahr aktualisieren. Kannst du dabei helfen? –

0
// I have Formatted the date object as per requirement. 
// eg 26-09-2016 
public void read_calendar(){ 
    ContentResolver cr = getContentResolver(); 
    Cursor cursor = cr.query(Uri.parse("content://com.android.calendar/events"), new String[]{ "calendar_id", "title", "description", "dtstart", "dtend", "eventLocation" }, null, null, null); 
    //Cursor cursor = cr.query(Uri.parse("content://calendar/calendars"), new String[]{ "_id", "name" }, null, null, null); 
    String add = null; 
    cursor.moveToFirst(); 
    String[] CalNames = new String[cursor.getCount()]; 
    int[] CalIds = new int[cursor.getCount()]; 
    for (int i = 0; i < CalNames.length; i++) { 
     CalIds[i] = cursor.getInt(0); 
     Date dateObj = new Date(cursor.getLong(3)); 
     String sdfCalDate = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH).format(dateObj); 

     CalNames[i] = ""+ sdfCalDate+"\n"+ cursor.getString(1); 
     if(add == null) 
      add = CalNames[i]; 
     else{ 
      add += "\n \n"+CalNames[i]; 
     } 
     textView3.setVisibility(View.VISIBLE); 
     textView3.setText(add); 

     cursor.moveToNext(); 
    } 
    cursor.close(); 
} 
+0

ich entwickle Kalender und ich muss es mit dem Android-Kalender synchronisiert werden. Ich muss standardmäßige Kalenderereignisse nacheinander abrufen und je nach Jahr, Monat und Datum sollte eine Textansicht in meiner Kalender-App aktualisiert werden. als Beispiel, wenn es ein Ereignis in 2017/01/30 im Standardkalender gibt, sollte mein Kalender auch diesen Tag hervorheben.Tage sind in textviews.I müssen Ereignisdaten mit if Funktion überprüfen und relevante Textansicht markieren. –

Verwandte Themen