calendarandroid
『壹』 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 calendar
這兩個都是android的包文件,直接把他們安裝android上即可。
執行如下命令即可
adb install <你的apk包名>
『叄』 android 開發中 利用Calendar對象設置時間 為何在設置年2038或者之後的年都設置無效(利用set介面)
2038年問題
在計算機應用上,2038年問題可能會導致某些軟體在2038年無法正常工作。所有使用UNIX時間表示時間的程序都將受其影響,因為它們以自1970年1月1日經過的秒數(忽略閏秒)來表示時間。這種時間表示法在類Unix(Unix-like)操作系統上是一個標准,並會影響以其C編程語言開發給其他大部份操作系統使用的軟體。在大部份的32位操作系統上,此「time_t」數據模式使用一個有正負號的32位元整數(signedint32)存儲計算的秒數。依照此「time_t」標准,在此格式能被表示的最後時間是2038年1月19日03:14:07,星期二(UTC)。超過此一瞬間,時間將會被掩蓋(wrap around)且在內部被表示為一個負數,並造成程序無法工作,因為它們無法將此時間識別為2038年,而可能會依個別實作而跳回1970年或1901年。錯誤的計算及動作可能因此產生。
『肆』 android開發,鬧鍾設置問題,關於Calendar
我記得月份好像是要減一的。
calendar1.set(Calendar.MONTH, ii1[1] - 1);
『伍』 android怎麼獲取calendar的對象
calendar日歷對象,在android裡面是可以直接new的,因為android系統內部用的就是java語言,所以java的api方法都是可以使用的。
『陸』 com.android.calendar已停止運行是什麼意思
安卓手機系統故障,一般是系統任務過多導致卡機或者刷機時沒有雙清又或者誤刪了系統的核心軟體才會這樣,如果頻繁出現則必須恢復出廠或刷機。
『柒』 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 日歷問題
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar calendar=Calendar.getInstance();
DatePickerDialog dialog=new DatePickerDialog(getActivity(),
dateListener,
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
dialog.show();
}
});
/////////////////////////////////////////////////////////////////////////////////////////////////////
DatePickerDialog.OnDateSetListener dateListener=new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
button.setText(year+"-"+monthOfYear+"-"+dayOfMonth);
}
};
//監聽一下選擇器就行了
『玖』 com.android.calendar什麼意思,可以刪除嗎
這是安卓手機的日歷應用程序,屬於系統的核心程序,不能刪除。
『拾』 如何讀取android裡面Calendar的事件
public String QueryAllCalendar(ContentResolver contentResolver){ //日歷裡面相應的Event的URI Uri uri = Uri.parse("content://calendar//events"); //String[] column=new String[]{"_id","title"}; Cursor cur=contentResolver.query(uri, null, null, null, null); while(cur.moveToNext()){ //日歷裡面相應的Event的ID String calendarEventId=cur.getString(cur.getColumnIndex("_id")); //日歷裡面相應的Event的title String calendarEventName=cur.getString(cur.getColumnIndex("title")); System.out.println("calendarEventId:"+calendarEventId+ "calendarEventName"+calendarEventName); }目前已經解決大部分問題,但是有一點不明白的是:在android\android-sdk-windows\sources\android \provider 裡面我可以看到Calendar的源碼,但是我在Eclipse裡面缺無法找到相應的Calendar類。不知道各位有遇到的沒有?還望指教