android日歷代碼
① 關於Android4.0日歷源碼中日期單元格的點擊事件
private DateWidgetDayCell.OnItemClick mOnDayCellClick = new DateWidgetDayCell.OnItemClick() {
public void OnClick(DateWidgetDayCell item) {
calSelected.setTimeInMillis(item.getDate().getTimeInMillis());
int day = GetNumFromDate(calSelected, startDate);
if (calendar_Hashtable != null
&& calendar_Hashtable.containsKey(day)) {
} else {
arrange_text.setText("暫無數據記錄");
}
item.setSelected(true);
updateCalendar();
}
};
這是我正在修改的一個日歷中的點擊事件,沒有看到你的源碼,不清楚在哪修改,僅供參考
② android 仿預訂日歷時間選擇(如去哪兒,攜程
看標題就知道了,一個日歷選擇,類似於去哪兒,攜程,酒店預訂功能
調用方法
package com.fly.caldroid;import android.annotation.SuppressLint;import android.app.Activity;import android.content.Intent;import android.content.res.Configuration;import android.os.Bundle;import android.view.View;import com.wz.caldroid.CalendarCellDecorator;import com.wz.caldroid.CalendarPickerView;import java.util.ArrayList;import java.util.Calendar;import java.util.Collections;import java.util.Date;@SuppressLint("SimpleDateFormat")public class CaldroidActivity extends Activity { private CalendarPickerView calendar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.calendar_activity); Bundle myBundle = getIntent().getExtras(); long seleteTime = myBundle.getLong("selete_time"); final Calendar nextYear = Calendar.getInstance(); nextYear.add(Calendar.MONTH, 3); final Calendar lastYear = Calendar.getInstance(); lastYear.add(Calendar.MONTH, 0); calendar = (CalendarPickerView) findViewById(R.id.calendar_view); Calendar today = Calendar.getInstance(); ArrayList<Date> dates = new ArrayList<Date>(); if (seleteTime>0){
Date d1=new Date(seleteTime); dates.add(d1); }else{
dates.add(today.getTime()); } calendar.setDecorators(Collections.<CalendarCellDecorator>emptyList()); calendar.init(lastYear.getTime(), nextYear.getTime()) // .inMode(CalendarPickerView.SelectionMode.MULTIPLE) // .withSelectedDate(dates.get(0)); initButtonListeners(); } private void initButtonListeners() { calendar.setOnDateSelectedListener(new CalendarPickerView.OnDateSelectedListener() { @Override public void onDateSelected(Date date) {
Intent intent = new Intent(); intent.putExtra("SELETE_DATA_TIME", calendar.getSelectedDate().getTime()); setResult(2, intent); finish(); } @Override public void onDateUnselected(Date date) {
}
}); View titlebar_img_back=findViewById(R.id.titlebar_img_back); titlebar_img_back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
finish(); }
}); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); }
}
layout======
calendar_activity
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:id="@+id/title_content_layout" android:layout_width="match_parent" android:layout_height="47.5dp" android:background="@color/big_red"> <TextView android:id="@+id/titlebar_text_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/titlebar_img_back" android:maxEms="8" android:singleLine="true" android:text="選擇日歷" android:textColor="@color/white" android:textSize="18sp" android:visibility="visible" /> <ImageView android:id="@+id/titlebar_img_back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:padding="5dp" android:src="@drawable/back_ic" android:visibility="visible" /> </RelativeLayout> <com.wz.caldroid.CalendarPickerView android:id="@+id/calendar_view" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingBottom="16dp" android:scrollbarStyle="outsideOverlay" android:clipToPadding="false" android:background="#FFFFFF" /></LinearLayout>
在textview上顯示時間
package com.fly.caldroid;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.TextView;import java.text.SimpleDateFormat;import java.util.Date;public class MainActivity extends AppCompatActivity { private long seleteTime = 0; private TextView time_choice_view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); time_choice_view = (TextView) findViewById(R.id.time_choice_view); time_choice_view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putLong("selete_time", seleteTime); intent.putExtras(bundle); intent.setClass(MainActivity.this, CaldroidActivity.class); startActivityForResult(intent, 5); }
}); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 5) { if (resultCode == 2) { seleteTime = data.getLongExtra("SELETE_DATA_TIME", 0); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date d1 = new Date(seleteTime); String t1 = format.format(d1); if (seleteTime > 0) { time_choice_view.setText(t1); } else { return; }
}
} super.onActivityResult(requestCode, resultCode, data); }
}
③ android 開發:我想實現一個EditText點擊後出現一個日歷然後返回值到EditText顯示
使用EditText click listener呼出DatePickerDialog
使用DatePickerDialog設置回調,回調後取得選中的日期
並把日期格式化成為字元串顯示在EditText中。
如需要詳細代碼,請追問。
④ 在android中如何獲取當前日期
Android中獲取系統時間和日期,星期代碼如下:
import java.text.SimpleDateFormat;
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss ");
Date curDate = new Date(System.currentTimeMillis());//獲取當前時間
String str = formatter.format(curDate);
可以獲取當前的年月時分,也可以分開寫:
復制代碼 代碼如下:
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date = sDateFormat.format(new java.util.Date());
如果想獲取當前的年月,則可以這樣寫(只獲取時間或秒種一樣):
Java代碼
復制代碼 代碼如下:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM");
String date=sdf.format(new java.util.Date());
當然還有就是可以指定時區的時間(待):
復制代碼 代碼如下:
df=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,Locale.CHINA);
System.out.println(df.format(new Date()));
如何獲取Android系統時間是24小時制還是12小時制
復制代碼 代碼如下:
ContentResolver cv = this.getContentResolver();
String strTimeFormat = android.provider.Settings.System.getString(cv,
android.provider.Settings.System.TIME_12_24);
if(strTimeFormat.equals("24"))
{
Log.i("activity","24");
}
復制代碼 代碼如下:
Calendar c = Calendar.getInstance();
取得系統日期:year = c.get(Calendar.YEAR)
month = c.grt(Calendar.MONTH)
day = c.get(Calendar.DAY_OF_MONTH)
取得系統時間:hour = c.get(Calendar.HOUR_OF_DAY);
minute = c.get(Calendar.MINUTE)
利用Calendar獲取
復制代碼 代碼如下:
Calendar c = Calendar.getInstance();
取得系統日期:year = c.get(Calendar.YEAR)
month = c.grt(Calendar.MONTH)
day = c.get(Calendar.DAY_OF_MONTH)
取得系統時間:hour = c.get(Calendar.HOUR_OF_DAY);
minute = c.get(Calendar.MINUTE)
Calendar c = Calendar.getInstance();
取得系統日期:year = c.get(Calendar.YEAR)
month = c.grt(Calendar.MONTH)
day = c.get(Calendar.DAY_OF_MONTH)
取得系統時間:hour = c.get(Calendar.HOUR_OF_DAY);
minute = c.get(Calendar.MINUTE)
利用Time獲取
復制代碼 代碼如下:
Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone資料。
t.setToNow(); // 取得系統時間。
int year = t.year;
int month = t.month;
int date = t.monthDay;
int hour = t.hour; // 0-23
int minute = t.minute;
int second = t.second;
⑤ Android Calendar獲取日期問題
SharedPreferences sp = getSharedPreferences("guozitv2", Context.MODE_PRIVATE);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String spilt[] = df.format(new Date()).toString().split("-");
if (Update(spilt)) {
Editor editor = sp.edit();
editor.putInt("year", Integer.valueOf(spilt[0]));
editor.putInt("month", Integer.valueOf(spilt[1]));
editor.putInt("day", Integer.valueOf(spilt[2]));
editor.commit();
}
public boolean Update(String[] spilt) {
int year = sp.getInt("year", 0);
int month = sp.getInt("month", 0);
int day = sp.getInt("day", 0);
int yearNow = Integer.valueOf(spilt[0]);
int monthNow = Integer.valueOf(spilt[1]);
int dayNow = Integer.valueOf(spilt[2]);
if (year > yearNow) {
return false;
} else if (year < yearNow) {
return true;
} else {
if (month > monthNow) {
return false;
} else if (month < monthNow) {
return true;
} else {
if (day >= dayNow) {
return false;
} else {
return true;
}
}
}
}
⑥ Android Compose 簡易日歷
初學Compose肯定要做些東西來熟悉,接下來我來分享我做的一個簡易日歷。
首先推薦一個網站,Accompanist是一組庫,旨在用開發人員通常需要但尚不可用的功能來補充[Jetpack Compose。]。 google.github.io/accompanist…
協奏曲pager implementation("com.google.accompanist:accompanist-pager:0.21.3-beta")
然後是一個庫,幫助我們在compose里創建和管理viewmodel
implementation('androidx.lifecycle:lifecycle-viewmodel-compose:2.4.0')
首先日歷有年月日,但是我做的這個日歷沒有年份,你當然也可以自己添加。
【Android開發】Android開發教程——jetpack Compose原理解析以及未來趨勢_嗶哩嗶哩_bilibili
⑦ Android開源日歷,materialcalendarview的選中背景如何縮小
因為項目需要,上github找了不少日歷控制項,最終敲定了MaterialCalendarView。
首先昵,要說下開源控制項使用的好處,我感覺大致有以下幾個方面:
1).網上有現成的為啥不去用,你覺得你自己寫的比別人牛逼嗎?
2).涉及年月日日期處理,滾動事件,相互交錯,沒有緊密的邏輯思維去構架,肯定漏洞百出,想想數不盡的bug,不寒而慄。
3).最關鍵的是,我懶,我懶,我懶!自己寫費時費力,牛逼的日歷組件都可以做一個app了,再說我只是想要一個選擇日期功能。
說了一堆廢話,現在我們來分析源碼了。。。。。
老外寫的東西層次感還是很分明的,我大致給它分為三個部分:日期的格式化,自定義的span效果,以及日歷控制項的實現。不用說日歷實現是最重要的一部分了,我們由簡入繁,從日期分析開始。
1)format,顧名思義,格式化,達到我們想要的日期展示樣式。
format包中有八個java文件,其中有三個介面,五個實現類。
三個介面:
DayFormatter 通過自定義的CalendarDay對象,得到一個日期的字元串標簽。其實現類是DateFormatDayFormatter。
TitleFormatter 通過自定義的CalendarDay對象,得到一個包含年月的字元串標簽,作為MaterialCalendarView的標簽。其實現類為DateFormatTitleFormatter和MonthArrayTitleFormatter。
WeekDayFormatter 將一個日期中Calendar.DAY_OF_YEAR對應的值轉換成一個字元串標簽。其實現類是ArrayWeekDayFormatter。
這三個介面都只有一個方法,有的提供了一個公有的默認實現類。其功能就是將日期的數值轉換成本地化的可讀字元串。在這里我可以想到的是,因為使用了介面,我們可以很靈活的替換其實現類,而不用更改日歷控制項中的代碼,實現定製化的需求。
2)span
spans包中只有一個類DotSpan,實現了在文字下方畫一個小圓點的效果。這是一個示例,我們可以模仿它來實現自己想要的效果。比如,如果想在日期的下方用一行小字顯示,用span是很方便的一種實現方式。
3)MaterialCalendarView
這個包中有16個Java文件,是此開源控制項主要的代碼所在。其中,組合成最終控制項的四個最重要的類是DayView,WeekDayView,MonthView和MaterialCalendarView。
DayView 繼承自CheckedTextView。之所以用CheckedTextView而不是TextView,是為了使用android.R.attr.state_checked狀態,在日期被選中時顯示不同的背景圖片。
WeekDayView 繼承自TextView,用於在日歷的第一排顯示星期的標簽。
MonthView 繼承自ViewGroup,它包含7個WeekDayView和42個DayView,即一個7*7的矩形,其中每一個矩形稱為一個tile。
MaterialCalendarView 繼承自ViewGroup,包含上方的title和下方的ViewPager。這個控制項的寬度如果不能被7整除,那麼它會自動縮小其內容,並居中。
老外實現MaterialCalendarView層次感非常強烈,注釋清楚,本人愚鈍啊,時刻不丟粗心的毛病,改造日歷期間很多功能點找不到,修改日歷的disable事件,點擊效果,日歷字體大小。。。。。等等。好了,廢話不多說,先來一份改造好的日歷圖,壓壓驚!左邊是我改造的,右邊是我們偉大開源作者的。(提倡開源,一直很欣賞這些懂的分享的人,只有弱者才會害怕自己的東西被人拿去)
左邊的日歷我針對自己項目進行了定製設計,調節了日歷大小,之前的dayview是寬高等比大小,寬度是平分屏幕,所以這樣導致高度很高,相互之間間隔比較大,我通過monthview的onMeasure方法,將高度修改為
int childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(
(int)(measureTileSize*0.65),
MeasureSpec.EXACTLY
);
這樣長寬就3/2了,這個時候只是第一步,僅僅只有monthview大小變了,整體的view大小還沒有變,所以我們還要處理下MaterialCalendarView的onMeasure 方法,對整體高度進行修改
⑧ 安卓日歷整體布局是怎麼實現的
自定義日歷控制項,支持舊歷、節氣、日期標注、點擊操作 (參考網路上的日歷控制項改寫)
註:將下面的四張資源圖片拷貝到所建包的下一個image目錄中,如Calendar.java 所在包為
cc.util.android.view,則需要再創建一個包cc.util.android.view.image 然後將圖片拷貝進去
/****************從此出開始將代碼拷貝到一個文件中*******************/
package cc.util.android.view;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.StateListDrawable;
import android.text.TextUtils.TruncateAt;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnTouchListener;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.TranslateAnimation;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.ViewFlipper;
import android.widget.AbsListView.LayoutParams;
/**
* 日歷控制項,支持舊歷、節氣、日期標注、點擊操作 (參考網路上的日歷控制項改寫)
*
* @author wangcccong
* @version 1.406 create at: Mon, 03 Sep. 2014
* <br>update at: Mon, 23 Sep. 2014
* 新增日期標注和點擊操作
*/
public class CalendarView extends LinearLayout implements OnTouchListener,
AnimationListener, OnGestureListener {
/**
* 點擊日歷
*/
public interface OnCalendarViewListener {
void onCalendarItemClick(CalendarView view, Date date);
}
/** 頂部控制項所佔高度 */
private final static int TOP_HEIGHT = 40;
/** 日歷item中默認id從0xff0000開始 */
private final static int DEFAULT_ID = 0xff0000;
// 判斷手勢用
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
// 屏幕寬度和高度
private int screenWidth;
// 動畫
private Animation slideLeftIn;
private Animation slideLeftOut;
private Animation slideRightIn;
private Animation slideRightOut;
private ViewFlipper viewFlipper;
private GestureDetector mGesture = null;
/** 上一月 */
private GridView gView1;
/** 當月 */
private GridView gView2;
/** 下一月 */
private GridView gView3;
boolean bIsSelection = false;// 是否是選擇事件發生
private Calendar calStartDate = Calendar.getInstance();// 當前顯示的日歷
private Calendar calSelected = Calendar.getInstance(); // 選擇的日歷
private CalendarGridViewAdapter gAdapter;
private CalendarGridViewAdapter gAdapter1;
private CalendarGridViewAdapter gAdapter3;
private LinearLayout mMainLayout;
private TextView mTitle; // 顯示年月
private int iMonthViewCurrentMonth = 0; // 當前視圖月
private int iMonthViewCurrentYear = 0; // 當前視圖年
private static final int caltitleLayoutID = 66; // title布局ID
private static final int calLayoutID = 55; // 日歷布局ID
private Context mContext;
/** 標注日期 */
private final List<Date> markDates;
private OnCalendarViewListener mListener;
public CalendarView(Context context) {
this(context, null);
}
public CalendarView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
mContext = context;
markDates = new ArrayList<Date>();
init();
}
// 初始化相關工作
protected void init() {
// 得到屏幕的寬度
screenWidth = mContext.getResources().getDisplayMetrics().widthPixels;
// 滑動的動畫
slideLeftIn = new TranslateAnimation(screenWidth, 0, 0, 0);
slideLeftIn.setDuration(400);
slideLeftIn.setAnimationListener(this);
slideLeftOut = new TranslateAnimation(0, -screenWidth, 0, 0);
slideLeftOut.setDuration(400);
slideLeftOut.setAnimationListener(this);
slideRightIn = new TranslateAnimation
⑨ android怎樣實現日歷年視圖
因為日歷是系統自帶的,所以讀寫它一定要申請許可權,也就是在AndroidManifest.xml加如下兩行代碼(一個讀一個寫):
<uses-permission android:name="android.permission.READ_CALENDAR"/>
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
Android中日歷用了三個URL,分別是日歷用戶的URL,事件的URL,事件提醒URL,三個URL在Android2.1之前是如下的樣子:
calanderURL = "content://calendar/calendars";
calanderEventURL = "content://calendar/events";
calanderRemiderURL= "content://calendar/reminders";
但是在Android2.2版本以後,三個URL有了改變,變成如下的樣子:
calanderURL = "content://com.android.calendar/calendars";
calanderEventURL = "content://com.android.calendar/events";
calanderRemiderURL = "content://com.android.calendar/reminders";
簡單的Demo,按照我的步驟一步一步的來:
第一步:新建一個Android工程命名為CalendarDemo.
第二步:修改main.xml布局文件,增加了三個按鈕,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/readUserButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Get a User"
/>
<Button
android:id="@+id/readEventButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Get a Event"
/>
<Button
android:id="@+id/writeEventButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Input a Event"
/>
</LinearLayout>
第三步:修改主核心程序CalendarDemo.java,代碼如下:
package com.tutor.calendardemo;
import java.util.Calendar;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class CalendarDemo extends Activity implements OnClickListener {
private Button mReadUserButton;
private Button mReadEventButton;
private Button mWriteEventButton;
private static String calanderURL = "";
private static String calanderEventURL = "";
private static String calanderRemiderURL = "";
//為了兼容不同版本的日歷,2.2以後url發生改變
static{
if(Integer.parseInt(Build.VERSION.SDK) >= 8){
calanderURL = "content://com.android.calendar/calendars";
calanderEventURL = "content://com.android.calendar/events";
calanderRemiderURL = "content://com.android.calendar/reminders";
}else{
calanderURL = "content://calendar/calendars";
calanderEventURL = "content://calendar/events";
calanderRemiderURL = "content://calendar/reminders";
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupViews();
}
private void setupViews(){
mReadUserButton = (Button)findViewById(R.id.readUserButton);
mReadEventButton = (Button)findViewById(R.id.readEventButton);
mWriteEventButton = (Button)findViewById(R.id.writeEventButton);
mReadUserButton.setOnClickListener(this);
mReadEventButton.setOnClickListener(this);
mWriteEventButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v == mReadUserButton){
Cursor userCursor = getContentResolver().query(Uri.parse(calanderURL), null,
null, null, null);
if(userCursor.getCount() > 0){
userCursor.moveToFirst();
String userName = userCursor.getString(userCursor.getColumnIndex("name"));
Toast.makeText(CalendarDemo.this, userName, Toast.LENGTH_LONG).show();
}
}else if(v == mReadEventButton){
Cursor eventCursor = getContentResolver().query(Uri.parse(calanderEventURL), null,
null, null, null);
if(eventCursor.getCount() > 0){
eventCursor.moveToLast();
String eventTitle = eventCursor.getString(eventCursor.getColumnIndex("title"));
Toast.makeText(CalendarDemo.this, eventTitle, Toast.LENGTH_LONG).show();
}
}else if(v == mWriteEventButton){
//獲取要出入的gmail賬戶的id
String calId = "";
Cursor userCursor = getContentResolver().query(Uri.parse(calanderURL), null,
null, null, null);
if(userCursor.getCount() > 0){
userCursor.moveToFirst();
calId = userCursor.getString(userCursor.getColumnIndex("_id"));
}
ContentValues event = new ContentValues();
event.put("title", "與蒼井空小-姐動作交流");
event.put("description", "Frankie受空姐邀請,今天晚上10點以後將在Sheraton動作交流.lol~");
//插入[email protected]這個賬戶
event.put("calendar_id",calId);
Calendar mCalendar = Calendar.getInstance();
mCalendar.set(Calendar.HOUR_OF_DAY,10);
long start = mCalendar.getTime().getTime();
mCalendar.set(Calendar.HOUR_OF_DAY,11);
long end = mCalendar.getTime().getTime();
event.put("dtstart", start);
event.put("dtend", end);
event.put("hasAlarm",1);
Uri newEvent = getContentResolver().insert(Uri.parse(calanderEventURL), event);
long id = Long.parseLong( newEvent.getLastPathSegment() );
ContentValues values = new ContentValues();
values.put( "event_id", id );
//提前10分鍾有提醒
values.put( "minutes", 10 );
getContentResolver().insert(Uri.parse(calanderRemiderURL), values);
Toast.makeText(CalendarDemo.this, "插入事件成功!!!", Toast.LENGTH_LONG).show();
}
}
}
第四步:在AndroidManifest.xml中申請許可權,代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tutor.calendardemo"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".CalendarDemo"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.READ_CALENDAR"/>
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
</manifest>
第五步:運行上述Android工程,查看效果:
⑩ 簡單實用的Android 自定義 日歷 Calendar
==========================
Include MonthPager in your layout XML.
目前來看 相比於Dialog選擇日歷 我的控制項更適合於Activity/Fragment在Activity的 onCreate 或者Fragment的 onCreateView 你需要實現這兩個方法來啟動日歷並裝填進數據
使用此方法回調日歷點擊事件
使用此方法初始化日歷標記數據
使用此方法給MonthPager添加上相關監聽
Gradle:
Step 1. Add it in your root build.gradle at the end of repositories:
Step 2. Add the dependency