Back to project page Android-Calendar-Sync.
The source code is released under:
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Defi...
If you think the Android project Android-Calendar-Sync listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2014 Mukesh Y authors//from w w w.ja v a2 s . c om * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.examples.android.calendar; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.GregorianCalendar; import java.util.Locale; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; /** * @author Mukesh Y */ public class CalendarView extends Activity { public GregorianCalendar month, itemmonth;// calendar instances. public CalendarAdapter adapter;// adapter instance public Handler handler;// for grabbing some event values for showing the dot // marker. public ArrayList<String> items; // container to store calendar items which // needs showing the event marker ArrayList<String> event; LinearLayout rLayout; ArrayList<String> date; ArrayList<String> desc; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.calendar); Locale.setDefault(Locale.US); rLayout = (LinearLayout) findViewById(R.id.text); month = (GregorianCalendar) GregorianCalendar.getInstance(); itemmonth = (GregorianCalendar) month.clone(); items = new ArrayList<String>(); adapter = new CalendarAdapter(this, month); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(adapter); handler = new Handler(); handler.post(calendarUpdater); TextView title = (TextView) findViewById(R.id.title); title.setText(android.text.format.DateFormat.format("MMMM yyyy", month)); RelativeLayout previous = (RelativeLayout) findViewById(R.id.previous); previous.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { setPreviousMonth(); refreshCalendar(); } }); RelativeLayout next = (RelativeLayout) findViewById(R.id.next); next.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { setNextMonth(); refreshCalendar(); } }); gridview.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { // removing the previous view if added if (((LinearLayout) rLayout).getChildCount() > 0) { ((LinearLayout) rLayout).removeAllViews(); } desc = new ArrayList<String>(); date = new ArrayList<String>(); ((CalendarAdapter) parent.getAdapter()).setSelected(v); String selectedGridDate = CalendarAdapter.dayString .get(position); String[] separatedTime = selectedGridDate.split("-"); String gridvalueString = separatedTime[2].replaceFirst("^0*", "");// taking last part of date. ie; 2 from 2012-12-02. int gridvalue = Integer.parseInt(gridvalueString); // navigate to next or previous month on clicking offdays. if ((gridvalue > 10) && (position < 8)) { setPreviousMonth(); refreshCalendar(); } else if ((gridvalue < 7) && (position > 28)) { setNextMonth(); refreshCalendar(); } ((CalendarAdapter) parent.getAdapter()).setSelected(v); for (int i = 0; i < Utility.startDates.size(); i++) { if (Utility.startDates.get(i).equals(selectedGridDate)) { desc.add(Utility.nameOfEvent.get(i)); } } if (desc.size() > 0) { for (int i = 0; i < desc.size(); i++) { TextView rowTextView = new TextView(CalendarView.this); // set some properties of rowTextView or something rowTextView.setText("Event:" + desc.get(i)); rowTextView.setTextColor(Color.BLACK); // add the textview to the linearlayout rLayout.addView(rowTextView); } } desc = null; } }); } protected void setNextMonth() { if (month.get(GregorianCalendar.MONTH) == month .getActualMaximum(GregorianCalendar.MONTH)) { month.set((month.get(GregorianCalendar.YEAR) + 1), month.getActualMinimum(GregorianCalendar.MONTH), 1); } else { month.set(GregorianCalendar.MONTH, month.get(GregorianCalendar.MONTH) + 1); } } protected void setPreviousMonth() { if (month.get(GregorianCalendar.MONTH) == month .getActualMinimum(GregorianCalendar.MONTH)) { month.set((month.get(GregorianCalendar.YEAR) - 1), month.getActualMaximum(GregorianCalendar.MONTH), 1); } else { month.set(GregorianCalendar.MONTH, month.get(GregorianCalendar.MONTH) - 1); } } protected void showToast(String string) { Toast.makeText(this, string, Toast.LENGTH_SHORT).show(); } public void refreshCalendar() { TextView title = (TextView) findViewById(R.id.title); adapter.refreshDays(); adapter.notifyDataSetChanged(); handler.post(calendarUpdater); // generate some calendar items title.setText(android.text.format.DateFormat.format("MMMM yyyy", month)); } public Runnable calendarUpdater = new Runnable() { @Override public void run() { items.clear(); // Print dates of the current week DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.US); String itemvalue; event = Utility.readCalendarEvent(CalendarView.this); Log.d("=====Event====", event.toString()); Log.d("=====Date ARRAY====", Utility.startDates.toString()); for (int i = 0; i < Utility.startDates.size(); i++) { itemvalue = df.format(itemmonth.getTime()); itemmonth.add(GregorianCalendar.DATE, 1); items.add(Utility.startDates.get(i).toString()); } adapter.setItems(items); adapter.notifyDataSetChanged(); } }; }