Android课程设计日记本程序.docx

上传人:b****2 文档编号:24500523 上传时间:2023-05-28 格式:DOCX 页数:42 大小:212.37KB
下载 相关 举报
Android课程设计日记本程序.docx_第1页
第1页 / 共42页
Android课程设计日记本程序.docx_第2页
第2页 / 共42页
Android课程设计日记本程序.docx_第3页
第3页 / 共42页
Android课程设计日记本程序.docx_第4页
第4页 / 共42页
Android课程设计日记本程序.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

Android课程设计日记本程序.docx

《Android课程设计日记本程序.docx》由会员分享,可在线阅读,更多相关《Android课程设计日记本程序.docx(42页珍藏版)》请在冰豆网上搜索。

Android课程设计日记本程序.docx

Android课程设计日记本程序

大连安博教育实训基地

大连实训课程设计

日记本程序

xxx

2011/12/26

1项目任务概述

要实现的日历除了常规的日历功能外,还可以显示与当前

日期相关的信息,如当天气预报等

信息。

1.2项目任务

本项目实现在Android移动设备上,查看万年历,查询天气,记录提醒定时。

方便人们生活,是人们记住做某事在预期的时间。

2需求分析

用户可以使用该系统实现万年历的查看,天气预报的查看,添加备忘录,查看修改备忘功能。

图1

主界面用例图

图2

图3

用户通过点击桌面“万年历”图标进入万年历系统,进入系统后首页会显示万年厉。

显示日期为当前日期,星期几,本月中的第几周,本年中的第几周。

按菜单键,有四项功能,分别是,“今日天气”、“指定日期”,“记录/提醒”和“关于”,单击选项选择功能。

图4

功能1.查询今日的天气,会显示天气信息,如温度,风力,穿衣指南等

功能2.指定日期使主界面的显示信息定位。

功能3.添加提醒信息。

功能4.显示软件相关信息。

3系统设计

3.1万年历UI——主界面

图5图6

主界面,主要显示日历信息,有记录的在数字前面显示“*”,可以通过点击灰色的数字活着两个按钮切换月份。

本页面有4个菜单项。

——今日天气

图7

有一个EditView,一个Button等,能够清晰的显示当天的气温情况和少许的提醒信息,使用户一目了然。

3.3万年历UI——指定日期

图8

此界面是一个对话框,包含一个DatePicker组件和确定取消按钮,比较清晰使用。

3.4万年历UI——添加提醒

图9

这是一个ListActivity,有一个菜单项。

3.5万年历UI——添加提醒具体页面

图10

这是添加提醒界面的功能具体页面,添加提醒的具体信息。

3.5日记本UI——修改,删除提醒记录

图11

3.6日记本UI——关于

图12

4数据库设计

我们的系统采用的是SQLite嵌入式数据库,在这个数据库中有且只有一个表——t_emp表。

提醒

主题integer

内容varchar

提醒日varchar

提醒时间remind_time

震动boolean

铃声boolean

数据库名称

diary

完成日期

版本

设计者

审核者

2011-12-27

1

高兴盛

表名

t_records

实体名称

万年历

主键

_id

索引表名称和索引字段名称

序号

项目名称

项目说明

类型(宽度)

位数

属性

备注

1

_id

编号

integer

P、N、I

2

title

主题

varchar

N

3

content

内容

integer

N

4

record_date

日期

date

N

5

remind_time

提醒时间

date

N

6

shake

震动

boolean

ring

铃声

boolean

提示:

U:

唯一(Unique)P:

主键(Primary)N:

非空(NotNull)

F:

外键(Foreign)D:

默认(Default)I:

自增长(autoincrement)

 

5系统实现代码解析

——

AndroidManifest.xml是系统中的配置文件,我们需要将系统中用到的Android组件全都在这个文件中注册,其中ActivityMain是启动屏幕显示的Activtiy。

xmlversion="1.0"encoding="utf-8"?

>

android=":

//schemas.android/apk/res/android"

package="com.ambow.android.my.memorandum"

android:

versionCode="1"

android:

versionName="1.0">

minSdkVersion="8"/>

icon="@drawable/icon"android:

label="@string/app_name">

name=".Main"

android:

label="@string/app_name">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

name=".Record"android:

label="@string/recordremind_name">

name="android.intent.category.LAUNCHER"/>

name=".AllRecord"android:

label="@string/recordremind_name">

name="android.intent.category.LAUNCHER"/>

name=".About"android:

label="@string/about">

name="android.intent.category.LAUNCHER"/>

name="Record"android:

label="@string/about">

name="android.intent.category.LAUNCHER"/>

name=".Today"android:

label="@string/today">

name="android.intent.category.LAUNCHER"/>

name="android.permission.VIBRATE"/>

name="android.permission.INTERNET"/>

5.2.1首先,我们将要介绍的是系统的启动界面Main.java,亦即登录界面的代码。

代码清单2.1Calendar.java主体:

publicclassMainextendsActivityimplementsOnDateChangedListener{

……//变量定义

@Override

protectedvoidonCreate(BundlesavedInstanceState){

//TODOAuto-generatedmethodstub

super.onCreate(savedInstanceState);

LinearLayoutmainLayout=(LinearLayout)getLayoutInflater().inflate(

R.layout.main,null);

setContentView(mainLayout);

calendarView=newCalendarView(this);

mainLayout.addView(calendarView);

}

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

……//四个菜单项

}

@Override

publicbooleanonOptionsItemSelected(MenuItemitem){

switch(item.getItemId()){

caseMiToday:

Today();break;

caseMiMyDate:

MyDate();break;

caseMiRecordRemind:

RecordRemind();break;

caseMiAbout:

About();break;

}

returntrue;

}

privatevoidToday(){

Intentintent=newIntent(Main.this,Today.class);

this.startActivity(intent);

}

publicvoidAbout(){

Intentintent=newIntent(Main.this,About.class);

this.startActivity(intent);

}

publicvoidRecordRemind(){

Intentintent=newIntent(Main.this,AllRecord.class);

intent.putExtra("year",calendarView.ce.grid.currentYear);

intent.putExtra("month",calendarView.ce.grid.currentMonth);

intent.putExtra("day",calendarView.ce.grid.currentDay1);

this.startActivity(intent);

}

publicvoidMyDate(){

……//指定日期

}

@Override

publicvoidonDateChanged(DatePickerview,intyear,intmonthOfYear,

intdayOfMonth){

SimpleDateFormatsdf=newSimpleDateFormat("yyyy年M月d日");

java.util.Calendarcalendar=java.util.Calendar.getInstance();

calendar.set(year,monthOfYear,dayOfMonth);

if(tvDate!

=null)

tvDate.setText(sdf.format(calendar.getTime()));

else

adMyDate.setTitle(sdf.format(calendar.getTime()));

Calendarcalendar1=Calendar.getInstance();

if(calendar1.get(Calendar.YEAR)==year

&&calendar1.get(Calendar.MONTH)==monthOfYear

&&calendar1.get(Calendar.DATE)==dayOfMonth)

{

if(tvDate!

=null)

tvDate.setText(tvDate.getText()+"(今天)");

else

adMyDate.setTitle(sdf.format(calendar.getTime())+"(今天)");

}

if(tvLunarDate==null)

return;

}

}

此类用于创建系统主界面。

onCreateOptionsMenu。

其中main布局如下代码。

代码清单2.2

xmlversion="1.0"encoding="utf-8"?

>

android=":

//schemas.android/apk/res/android"

android:

orientation="vertical"android:

layout_width="fill_parent"

android:

layout_height="fill_parent"android:

background="@color/calendar_background">

--android:

background="@drawable/background"-->

id="@+id/calHeader"

android:

layout_width="fill_parent"android:

layout_height="70dp">

id="@+id/ivLogo"android:

src="@drawable/calendar"

android:

layout_width="@dimen/logo_size"android:

layout_height="@dimen/logo_size"

android:

layout_margin="@dimen/margin"/>

layout_width="fill_parent"

android:

layout_height="wrap_content"android:

layout_toRightOf="@id/ivLogo"

android:

layout_marginTop="@dimen/margin"android:

orientation="vertical">

id="@+id/tvButton1"android:

layout_width="wrap_content"

android:

text="-"android:

textSize="15dp"android:

layout_height="wrap_content"

android:

background="@drawable/button_ground1">

id="@+id/tvMsg2"android:

layout_width="160dp"

android:

layout_height="wrap_content"android:

textColor="@color/text_color"

android:

layout_toRightOf="@id/tvButton1"/>

id="@+id/tvButton2"android:

layout_width="wrap_content"

android:

text="+"android:

textSize="15dp"android:

layout_height="wrap_content"

android:

background="@drawable/button_ground2"

android:

layout_toRightOf="@id/tvMsg2">

id="@+id/tvMsg1"android:

layout_width="fill_parent"

android:

layout_height="wrap_content"android:

textColor="@color/text_color"

android:

layout_marginTop="10dp"android:

layout_below="@id/tvMsg2"/>

5.2.2现在,让我们跟随用户操作来了解下一个段代码,即用户查看当天天气

代码清单3Today.java。

访问webService及显示天气信息。

代码清单3.1访问webService及显示天气信息。

privatevoidparseWeather(SoapObjectdetail)

throwsUnsupportedEncodingException{

String[]str=newString[18];

intN=str.length;

StringBufferbuffer=newStringBuffer();

for(inti=0;i

str[i]=detail.getProperty(i).toString();

buffer.append(i).append(str[i]).append("\n");

}

Strings=newString();

s=detail.getProperty(8).toString();

Stringtemp=detail.getProperty(8).toString();

StringBufferstrbuffer=newStringBuffer();

System.out.println(str);

for(inti=0;;i++){

if(temp.charAt(i)=='.'){

break;

}else{

strbuffer.append(temp.charAt(i));

}

}

intnum=Integer.parseInt(strbuffer.toString());

flag=false;

imageView.setImageResource(R.drawable.a_0+num);

Stringdate=detail.getProperty(6).toString();

weatherToday="今天:

"+date.split("")[0];

weatherToday=weatherToday+"\n天气:

"+date.split("")[1];

weatherToday=weatherToday+"\n气温:

"

+detail.getProperty(5).toString();

weatherToday=weatherToday+"\n风力:

"

+detail.getProperty(7).toString()+"\n"

+str[11].split("\n")[0];

weather.setText(weatherToday);

}

classMyThreadextendsThread{

MyHandlerhandler=newMyHandler();

@Override

publicvoidrun(){

try{

sleep(1000);

}catch(Exceptione){

e.printStackTrace();

}

Messagemessage=newMessage();

handler.sendMessage(message);

}

}

classMyHandlerextendsHandler{

@Override

publicvoidhandleMessage(Messagemsg){

try{

progressDialog();

//下拉框或列表

Stringcity=editText.getText().toString();

getWeather(city);

dialog.cancel();

}catch(Exceptione){

e.printStackTrace();

}

}

}

5.2.3现在,让我们跟随用户操作来了解下一个段代码,即指定日期。

代码清单4Main.java中的MyDate()。

publicvoidMyDate(){

myDateLayout=(LinearLayout)getLayoutInflater().inflate(

R.layout.mydate,null);

dpSelectDate=(DatePicker)myDateLayout

.findViewById(R.id.dpSelectDate);

//Createabuilder

builder=newAlertDialog.Builder(this);

builder.setTitle("指定日期");

myDateLayout=(LinearLayout)getLayoutInflater().inflate(

R.layout.mydate,null);

dpSelectDate=(DatePicker)myDateLayout

.findViewById(R.id.dpSelectDate);

tvDate=(TextView)myDateLayout.findViewById(R.id.tvDate);

tvLunarDate=(TextView)myDateLayout

.findViewById(R.id.tvLunarDate);

d

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1