2014-10-01 11 views
7

Sto provando a creare un calendario personalizzato per gli eventi dello spettacolo e le informazioni relative nella mia app. Ma non so come mostrare queste informazioni. Questo è il codice del calendario:Mostra informazioni sull'evento con ExtendedCalendarView

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ExtendedCalendarView calendar = (ExtendedCalendarView)findViewById(R.id.calendar); 
    ContentValues values = new ContentValues(); 
    values.put(CalendarProvider.COLOR, Event.COLOR_BLUE); 
    values.put(CalendarProvider.DESCRIPTION, "Some Description"); 
    values.put(CalendarProvider.LOCATION, "Some location"); 
    values.put(CalendarProvider.EVENT, "Event name"); 

    Calendar cal = Calendar.getInstance(); 
    TimeZone tz = TimeZone.getDefault(); 
    cal.set(startDayYear, startDayMonth, startDayDay, startTimeHour, startTimeMin); 
    int StartDayJulian = Time.getJulianDay(cal.getTimeInMillis(), TimeUnit.MILLISECONDS.toSeconds(tz.getOffset(cal.getTimeInMillis()))); 
    values.put(CalendarProvider.START, cal.getTimeInMillis()); 
    values.put(CalendarProvider.START_DAY, StartDayJulian); 

    cal.set(endDayYear, endDayMonth, endDayDay, endTimeHour, endTimeMin); 
    int endDayJulian = Time.getJulianDay(cal.getTimeInMillis(), TimeUnit.MILLISECONDS.toSeconds(tz.getOffset(cal.getTimeInMillis()))); 

    values.put(CalendarProvider.END, cal.getTimeInMillis()); 
    values.put(CalendarProvider.END_DAY, endDayJulian); 

    // Uri uri = getContentResolver().insert(CalendarProvider.CONTENT_URI, values); 
} 

posso vedere il calendario e l'evento, ma probabilmente ho per implementare un metodo "onclick" per la visualizzazione dei infomations. Chiunque stia utilizzando questa libreria può aiutarmi? Beacuse non riesco a trovare informazioni su. Grazie.

risposta

4

Ho trovato la risposta da solo.

cal.setOnDayClickListener(new OnDayClickListener() { 
     @Override 
     public void onDayClicked(AdapterView<?> adapter, View view, 
       int position, long id, Day day) { 

      dayIsClicked = true; 
      clickedDay = day; 
      getScheduleDetails(day); 

      list.setAdapter(new ListaAdapter(context, R.layout.itemlist, 
          itemsList)); 

       } 

      } 

    }); 

private void getScheduleDetails(Day day) { 

itemsList = new ArrayList(); 

for (Event e : day.getEvents()) 
{ 
    itemsList.add(e); 
} 

}

+0

non ho potuto applicare il metodo a causa di qualche cosa che manca così può u plz inviare il codice di questo progetto con l'aggiunta di evento così come la lista dei eventi in listview come display in Screen shots.? – jatin

+0

Ho bisogno anche del codice completo. – user2872856

2

mostro le informazioni in una lista sotto il calendario.

come questo. enter image description here

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_layout_location_site_calendar); 
     this.ctx = this; 

     this.extendedCalendarView = (ExtendedCalendarView) findViewById(R.id.extendedCalendarView_addLocationSiteCalendar_CALENDAR); 
     this.listViewCalendar = (ListView) findViewById(R.id.listView_addLocationSiteCalendar_CALENDARLIST); 
     //Disable Scrolling 
     this.listViewCalendar.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       return true; 
      } 
     }); 

     this.extendedCalendarView.setGesture(ExtendedCalendarView.LEFT_RIGHT_GESTURE); 
     addEvent();//test 
     addEvent2();//test 

     initExtras(savedInstanceState); 
     initListener(); 
    } 


private void initListener() { 
     extendedCalendarView.setOnDayClickListener(new ExtendedCalendarView.OnDayClickListener() { 
      @Override 
      public void onDayClicked(AdapterView<?> adapter, View view, int position, long id, Day day) { 
       ArrayList<HashMap<Integer, String>> eventList = new ArrayList<HashMap<Integer, String>>(); 
       for (Event e : day.getEvents()) { 
        HashMap<Integer, String> event = new HashMap<Integer, String>(); 
        event.put(NumericValues.LISTROW_ID_IMG_T_ST_IDC_KEY_TITLE, e.getTitle()); 
        event.put(NumericValues.LISTROW_ID_IMG_T_ST_IDC_KEY_SUBTITLE, e.getDescription()); 
        event.put(NumericValues.LISTROW_ID_IMG_T_ST_IDC_KEY_INDICATOR, e.getStartDate("hh:mm") + " - " + e.getEndDate("hh:mm")); 
        eventList.add(event); 
       } 
       CalendarListViewAdapter listAdapter = new CalendarListViewAdapter(_this, eventList); 
       listViewCalendar.setAdapter(listAdapter); 
       ListViewUtil.setListViewHeightBasedOnChildren(listViewCalendar); 
      } 
     }); 
    } 

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <com.tyczj.extendedcalendarview.ExtendedCalendarView 
      android:id="@+id/extendedCalendarView_addLocationSiteCalendar_CALENDAR" 
      android:layout_height="350dp" 
      android:layout_width="match_parent" /> 
     <ListView 
      android:id="@+id/listView_addLocationSiteCalendar_CALENDARLIST" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:divider="@drawable/list_divider" 
      android:dividerHeight="1px" 
      android:listSelector="@drawable/contacts_list_selector" /> 
    </LinearLayout> 
</ScrollView> 

+1

L'aspetto è molto buono. Ci proverò presto. Grazie –

+0

Come importare/fare riferimento a listViewCalendar? – user2872856

+0

scusa non capisco. cosa intendi con import/make reference ?? –

Problemi correlati