日历安卓代码(安卓日历app)
admin 发布:2022-12-19 23:10 81
今天给各位分享日历安卓代码的知识,其中也会对安卓日历app进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
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=""
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~");
//插入hoohbood@gmail.com这个账户
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=""
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工程,查看效果:
安卓开发中,Widget点击事件进入系统的日历是代码如下,那么相似的进入系统时间要怎么修改?
4.0以上版本
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.android.deskclock",
"com.android.deskclock.AlarmsMainActivity"));
startActivity(intent);
如果不行的话,就换成
Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.deskclock");
startActivity(intent);
日历安卓源代码导入android studio
Eclipse迁移到Android studio步骤如下:
一、从Eclipse中导出:
1、将ADT插件版本升级到22.0以上。
2、在Eclipse中,选择File--Export。
3、在弹出的导出窗口中,打开Android的文件夹,选择“Generate Gradle Build Files”。
4、选中想要导入到Android Studio中的项目,Finish。
注意:导出的项目将会和原来的项目在同一目录,覆盖原来的同时,会新增一个叫build.gradle的文件,导入Android Studio时将首先读取这个文件。
二、导入到Android Studio:
1、在Android Studio 中,首先关掉当前的打开的项目。
2、在欢迎界面,点击Import Project(注:也是可以直接在菜单选择Import project的)。
3、选中Eclipse中导出的项目,展开目录,点击build.gradle文件,然后OK。
4、在之后的弹出对话框中,会要求选择Gradle的配置,选中Use gradle wrapper.(注:也可以自定义本机装的Gradle)。
注意:如果没有Grade build文件,也是可以将普通的安卓项目导入到Android Studio中,它会用现有的Ant build.但为了更好地使用之后的功能和充分使用构建变量,还是强烈地建议先从ADT插件中生成Gradle文件再导入Android Studio。
日历安卓代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于安卓日历app、日历安卓代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接