Ⅰ 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工程,查看效果:
Ⅱ 安卓手機日歷的使用
為了方便大家更好的使用日歷,我做一個簡單的教程供參考。
1.點擊右上角一個筆的符號
2.添加自己的事件(下面的時間和鬧鍾大家應該都會)
敲黑板: 有的事件是每周都要的,如果一周一周弄很麻煩。
點擊下面「有數字2的刷新符號」就可以設置重復了。
1.點擊左上角三條線的符號
2.出來這樣的畫面,然後再點擊右上角的齒輪符號。
3.找到管理日歷這一項
4.點擊solcalendar右邊的加號,即可添加日歷。
5.這樣在設置日程的時候,就可以勾選決定保存在那個日歷。
6.如何查看呢
同樣和上面一樣,先點擊右上角的三條線符號出來這個頁面。
點擊最右邊的日歷,即可顯示自己想要查看的日歷。
(以下借鑒班級同學內容)
Ⅲ 開發Android 日歷教程
一、創建
Android
Project
在新建對話框中輸入
App
屬性,SDK版本全部選最新的,不作版本兼容。主題選擇
Holo
Dark。
下一步,使用默認設置
下一步,使用默認設置
下一步,使用默認配置
下一步,使用默認設置
創建完成後的初始畫面
在上面的步驟中,我們選擇了創建
MainActivity,ADT
幫我們在
src
目錄下生成了
MainActivity.java
文件,在
res/layout/
目錄下生成了
activity_main.xml
文件,並在編輯窗口打開,如上圖,是
UI
界面定義文件,這是一個標準的
xml
文件,顯示的圖像就是由編輯器解析
xml
文件描繪出來的。點擊下方的
"Graphical
Layout"
和
“activity_main.xml"
可以在圖形編輯
和
xml
文本編輯器之間切換。
為了項目結構清晰,我們新建一個包,專門用來放
activity:
包名定為
ui.activity
這里,將
Package
Explorer
的顯示方式改為
Hierarchical
拖動
MainActivity.java
到
ui.activity
包下,彈出更新對話框,選擇OK。
由於改變了
activity
的位置,我們需要更新
AndroidManifest.xml,更正
Application
的配置。
如下圖,雙擊打開
AndroidManifest.xml,選擇
Application
標簽頁,選中
Application
Nodes
中的
MainActivity,右邊的
Name
屬性是錯誤的,點擊
Browse
重新選擇,設為:com.lingsmm.purelunarcalendar.ui.acivity
繼續向下拉,將
Screen
orientation
設置為
”sensorLandscape“,表示屏幕方向是橫屏,並感應重力方向作調整。
界面編輯窗口上方是工具欄:
1:多屏預覽,如果你的程序要兼容多種尺寸的設備,可以選擇此項。
2:主屏尺寸設定(我們的應用,不作兼容,只針對
google
Nexus
7,將此選擇為
Nexus
7,以10”畫面進行編輯布局)
3:屏幕方向,我們選擇橫屏
4:主題
5:關聯的
Java
類,Context
實例由它創建。
6:多語言支持。
7:系統版本選擇,如果兼容多版本,可以選擇不同版本進行預覽。
Ⅳ 安卓系統上有哪些好用的日歷App
安卓系統上有哪些好用的日歷App?根據你的需求,推薦你使用敬業簽這款日歷便簽軟體,因為:
1、它自帶有日歷的功能,我們就可以在這一日歷中同步查看到每個日期對應的新增事項、已完成事項以及提醒事項等內容;
2、它具備多項分類的功能,你可以將分類記錄每天的待辦事項,然後根據任務的輕重緩急制定出一天的待辦計劃;
3、它有待辦事項提醒的功能,支持定時提醒、重復提醒、間隔提醒、延時提醒、來電提醒、簡訊提醒以及微信提醒等類型;
4、具備多端兼容的優勢,可以同時適用於以下幾個埠:Windows/Android/ios/Web/ipad/Mac, 我們只需在各端登錄同一賬號,便簽內容、提醒事項以及日歷中的內容記錄就可以實現多端雲同步。
Ⅳ 簡單實用的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
Ⅵ android日歷控制項
1.DatePicker
在Android中,DatePicker用來實現日期輸入設置,日期的設置范圍為1900年1月1日至2100年12月31日。
1.1常用xml屬性
DatePicker的常用xml屬性如圖1所示:
圖1 DatePicker常用xml屬性
其中,android:calendarViewShown[boolean]用於設置是否顯示calendar view;android:endYear[int]用於設置截至日期;android:maxDate[int]用於設置最大的日期;android:minDate[int]用於設置最小的日期;android:spinnersShown[boolean]用於設置是否顯示spinners;android:startYear[int]用於設置起始日期。
1.2常用方法
DatePicker的常用方法有以下一些:
(1)public CalendarView getCalendarView(); //獲取CalendarView
(2)public boolean getCalendarViewShown(); //獲取CalendarView是否顯示
(3)public int getDayOfMonth(); //獲取當前日期的日
(4)public long getMaxDate(); //獲取最大日期
(5)public long getMinDate(); //獲取最小日期
(6)public int getMonth(); //獲取當前日期的月
(7)public boolean getSpinnersShown(); //獲取Spinners是否顯示
(8)public int getYear(); //獲取當前日期的年
(9)public void init(int year,int monthOfYear,int dayOfMonth,
DatePicker.OnDateChangedListener onDateChangedListener); //初始化日期
(10)public void setCalendarViewShown(boolean shown);//設置是否顯示CalendarView
(11)public void setMaxDate(long maxDate); //設置最大日期
(12)public void setMinDate(long minDate); //設置最小日期
(13)public void setSpinnersShown(boolean shown); //設置是否顯示Spinners
(14)public void updateDate(int year,int month,int dayOfMonth); //更新當前日期2.TimePicker
在Android中,TimePicker用來實現時間輸入設置,可以選擇12或24小時模式。TimePicker的常用方法有以下一些:
(1)public Integer getCurrentHour(); //獲取當前時間的小時
(2)public Integer getCurrentMinute(); //獲取當前時間的分鍾
(3)public boolean is24HourView(); //獲取是否為24小時模式
(4)public void setCurrentHour(Integer currentHour); //設置當前時間的小時
(5)public void setCurrentMinute(Integer currentMinute); //設置當前時間的分鍾
(6)public void setIs24HourView(Boolean is24HourView); //設置24小時模式3.DatePickerDialog
在Android中,DatePickerDialog用來顯示日期對話框。DatePickerDialog的常用方法有以下一些:
(1)public DatePicker getDatePicker(); //獲取DatePicker中的日期值
(2)public void onClick(DialogInterface dialog,int which); //響應對話框中的點擊事件
(3)public void onDateChanged(DatePicker view,int year,int month,int day); //響應日期改變事件
(4)public void updateDate(int year,int monthOfYear,int dayOfMonth); //更新當前日期4.TimePickerDialog
在Android中,TimePickerDialog用來顯示時間對話框。TimePickerDialog的常用方法有以下一些:
(1)public void onClick(DialogInterface dialog,int which); //響應對話框中的點擊事件
(2)public void onTimeChanged(TimePicker view,int hourOfDay,int minute); //響應時間改變事件
(3)public void updateTime(int hourOfDay,int minuteOfHour); //更新當前時間5.AnalogClock
在Android中,AnalogClock用於顯示指針式時鍾,該時鍾僅有時鍾和分鍾兩個指針。6.DigitalClock
在Android中,DigitalClock用來顯示數字式時鍾,顯示格式為HH:MM:SS AM/PM。
Ⅶ 安卓系統上有哪些好用的日歷App
可以試試使用易歷知食,其內的太易日歷槐態手功能強大,如下所示:
公元前或公元後(跨越幾千年)的日歷均可查詢: