当前位置:首页 > 代码 > 正文

android简单日历源代码(日历软件源)

admin 发布:2022-12-19 22:24 160


本篇文章给大家谈谈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

日历安卓源代码导入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。

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怎样实现日历年视图?

因为日历是系统自带的,所以读写它一定要申请权限,也就是在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工程,查看效果:

关于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简单日历源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于日历软件源、android简单日历源代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/27501.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载