2023年6月27日发(作者:)
1
****大学
智能终端开发课程设计说明书
课题名称:
姓 名:
学 号:
专 业:
班 级:
指导教师:
2014年12月25日
2
目 录
第一章 概 述----------------------------------------------------------------------------
第二章 需求分析------------------------------------------------------------------------------
2.1 系统主要内容--------------------------------------------------------------------------
2.2 基本要求--------------------------------------------------------------
2.3设计需要结合使用的技术---------------------------------------------
2.4模块的功能性概述---------------------------------------------
第三章 概要设计---------------------------------------------------------------------
3.1 系统的功能结构------------------------------------------------------------------
3.2 系统的模块结构------------------------------------------------------------------------
3.3 各模块的活动图------------------------------------------------------------------------
第四章 详细设计----------------------------------------------------------------------
4.1 布局文件------------------------------------------------------
4.2备忘录数据存储的实现--------------------------------------------------------------------
4.3备忘录的列表展示--------------------------------------------------------------------------
4.4备忘录的维护-------------------------------------------------------------
4.5备忘录的定时提醒-------------------------------------------------------------
第五章 调试分析------------------------------------------------------------------------------
第六章 设计总结--------------------------------------------------------------------------------
第七章 参考文献----------------------------------------------------------------------------
第八章 附录----------------------------------------------------------------------------
3
第一章 概述
对于很多人来说,随时带个小本子记录一些事情是很有必要的事情,从而出现了备忘录。有了备忘录,可以将自己的工作和生活安排的更有条理,在有限的时间内完成最重要、最紧急的事情。随着智能手机逐渐走进普通人的生活,它正在成为人们获取信息的主要设备,而且智能手机是他们获取信息最方便、最快捷的途径。因此,对于所有拥有的手机的用户来说,可以随时随地便捷的通过手机备忘录来实现重要事情的记录与提醒,省去了随身携带纸笔的麻烦。现如今搭载Android系统平台的手机已占有超过70%的市场份额,所以,在Android系统下的备忘录软件中,用户可以非常方便的查询事件备忘,为工作、出游、生活杂碎事提供整理记录功能。开发一款能在Android系统上使用,且性能卓越的备忘录是非常有必要且前途光明。
4
第二章 需求分析
2.1、系统主要内容:
(1)、基于Android系统平台研发出备忘录;
(2)、通过安装备忘录,防止手机用户遗忘某个时间的重要工作,进行记录并在特定时间通过声音,文字或振动提醒用户;
(3)、主要模块有:备忘录数据存储、列表浏览、数据维护和定时提醒等模块。
2.2、基本要求:
(1)、基于Android系统平台研发出备忘录,以防止手机用户遗忘某个时间的重要工作,进行记录并在特定时间通过声音,文字或振动提醒用户。
(2)、主要设计出备忘录数据存储、列表浏览、数据维护和定时提醒等模块。已学习掌握Android系统平台和Java编程技术,并要求软件界面简洁专业,功能完善,真正为用户提供重要工作备忘功能。
2.3、设计需要结合使用的技术:
(1)、Eclipse平台:
Eclipse 是一个运行插件的平台。可以下载安装 Eclipse Classic 的最新版本。
(2)、Android Developer Tools:
按照安装说明安装 Android Developer Tools(Eclipse 插件)。
2.4、模块的功能性概述:
(1)、备忘录数据存储实现:
备忘录的最重要功能就是记录和保存用户容易遗忘的日期和事件,为了持久地将用户的备忘录信息保存下来,需要将这些信息存储在数据库中。备忘录需要保存的信息有:编号(ID)、提醒日期(Date1)、提醒时间(Time1)、提醒内容(Content)、是否启用(ON_OFF)、是否声音提醒(ALARM)、创建时间(CREATED)等.
(2)、备忘录列表展示:
用户可能需要创建很多条备忘录信息,并且需要维护这些备忘录信息,例如删除、修改等功能。备忘录的列表展示能使用户界面更加简洁清晰,并带给用户使用方便
(3)、备忘录维护:
备忘录维护是该应用程序的核心部分,提供了添加、修改、删除备忘录信息的功能,提供备忘录动态更新的功能。
(4)、备忘录定时提醒:
备忘录的第一需求是能够有效提醒用户置办已记录的事件,从而达到真正避免遗忘的效果,为了更好的提醒用户在特定时间做某项工作,要设置语音和震动等功能。
5
第三章 概要设计
3.1、系统的功能结构:
3.2、系统的模块结构:
开始
设置是否开启
设置日期时间
备忘录内容
开启闹钟
结束
6
3.3、各模块的活动图:
3.3.1、添加备忘录
添加日期、时间、闹铃: 7
添加内容:
8
3.3.2、查看备忘录
3.3.3修改备忘录
修改日期、时间、闹铃:
9
修改内容:
3.3.4删除备忘录
10
第四章 详细设计
4.1、布局文件
fill_parent:
使视图元素占满可用的空间。也可以认为这就是 “拉伸”。
4.2、备忘录数据存储的实现
为了使备忘录数据表具有通用的数据共享访问机制,需要通过ContentProvider来实现。这里定义一个TaskListProvider类,该类继承ContentProvider,实现了onCreat、query、getType、insert、delete、update等方法,来支持数据的增、删、查、改等操作。在该类内部还定义了一个DatabaseHelper内部类继承SQLiteHelper,该类提供了常见或打开数据库、创建或删除表的功能。
11
4.3、备忘录的列表展示:
这里通过一个ListActivity来展示备忘录列表,通过选项菜单提供维护数据接口。
4.4、备忘录的维护:
当用户单击主界面的一个列表时会在上述列表展示中提到的setOnItemClickListener方法中响应,此方法体中定义一个Intent对象,
使用setClass方法实现界面跳转到此TaskDetailActivity所对应的界面
12
4.5、备忘录的定时提醒:
此功能通过定义Activity发出广播,BroadcastReceiver接收广播,并通过Notification提醒用户。
4.5.1定义提醒广播接收器
当用户选择了备忘录信息中的“开启闹钟”选项时,便通过广播的方式启动一个定时闹钟,之后定义一个广播接收器接收广播。
13
4.5.2广播接收器实现如下
4.5.3显示提醒Activity:
14
第五章 调试分析
程序运行:
列表展示:
15
备忘录维护:
16
备忘录定时提醒:
总体来说,调试过程中基本没有出现系统性错误,软件健壮性良好,测试数据随机采用,基本实现软件要实现的需求。
17
第六章 设计总结
经过一个多月的学习和研究,本次课程设计终于圆满完成,虽然耗费了许多精力和时间,设计过程中也出现了许多问题,但通过网上资料的查询、图书馆图书的借阅以及同学们的帮助,最终也逐一得到了解决。
通过本次课程设计,我了解到实践经验对于学生的重要性。备忘录软件的开发使我对书本上的知识点和理论有了更深一层的了解,使我学会了如何利用所学的知识,把理论结合于实践中,进一步掌握了开发基于Android平台的软件的流程。
本次课程设计主要研究了Android平台的架构以及在Android平台上开发备忘录软件,此应用除了具备简单备忘功能外,还具备简单数据处理功能以及闹钟提醒相对高级点的功能。本次课程设计在Android平台以及在该平台上开发手机备忘录软件上做了大量的工作,但仍有许多地方值得进一步探讨研究,如:界面设计如何更加美观简洁,软件的移植性、兼容性如何等。Android开发是一个开放的平台,需要不断进行内容添加和补充,这也就要求我们学生不断学习新知识,从而使软件功能不断扩展。
同时,本次课程设计让我对《智能终端开发》这门课程有了更深层次的了解,也让我发现了自我存在的不足,今后,在Android开发的学习之路上,我必须更加重视实践与理论的结合,在系统的扩展性方面花费更多的精力去学习。
第七章 参考文献
【1】《零点起飞学 Android开发》徐诚 著,清华大学出版社
[2]《Android基础教程》 (美)伯内特 著,张波 等译/2009年11月/人民邮电出版社
[3]《Android应用程序开发》,王向辉,张国印,沈洁 编著/2010年3月/清华大学出版社
[4]《Java宝典》,孙浏毅 等编著/2009年8月/电子工业大学出版社
[5]《XML程序设计使用教程》,张亚飞,汤桂风 编著/2010年8月/北京师范大学出版社
[6]《Java编程思想》(美)Bruce Eckel著,陈昊鹏 译/2011年4月/机械工业出版社
[7]《Android程序设计基础》郝玉龙/2011年1月/清华大学出版社
18
第八章 附 录
(1) 文件
package ;
import .*;
import t;
import ;
import ;
import ;
import kListener;
import ;
import ew;
public class AlarmActivity extends Activity {
public static final int ID = 1;
protected void onCreate(Bundle savedInstanceState) {
te(savedInstanceState);
setContentView();
// 获得Button、TextView实例
Button btn = (Button) findViewById(Button01);
TextView tv = (TextView)findViewById(tView01);
//获得NotificationManager实例
String service = CATION_SERVICE;
final NotificationManager nm =
(NotificationManager)getSystemService(service);
// 实例化Notification
Notification n = new Notification();
// 设置显示提示信息,该信息也会在状态栏显示
String msg = getIntent().getStringExtra("msg");
Text = msg;// 显示时间
t(msg);
// 设置声音提示
= ("file:///sdcard/");
(ID, n);// 发出通知
// 取消通知
lickListener(new OnClickListener() {
19
}
}
public void onClick(View v) {
}
(ID);
finish();
});
(2) 文件
package ;
import ar;
import .*;
import t.*;
import ;
import ;
import Inflater;
import ;
import oup;
import .*;
import ;
public class TaskDetailActivity extends ListActivity {
// 备忘录信息列表
private ListView listView = null;
private int mYear;// 提醒日期
private int mMonth;
private int mDay;
private int mHour;// 提醒时间
private int mMinute;
// 日期显示TextView
private TextView dateName, dateDesc;
// 时间显示TextView
private TextView timeName, timeDesc;
// 提醒内容TextView
private TextView contentName, contentDesc;
private int on_off = 0;// 是否开启提醒 20
private int alarm = 0;// 是否声音警告
// 显示日期、时间对话框常量
static final int DATE_DIALOG_ID = 0;
static final int TIME_DIALOG_ID = 1;
// 保存内容、日期、时间字符串
private String content, date1, time1;
private int id1;// 备忘录ID
private CheckedTextView ctv1, ctv2;// 多选框
private LayoutInflater li;// 访问布局实例
// 初始化方法
private void init(Intent intent) {
Bundle b = dleExtra("b");
if (b != null) {
}
public void onCreate(Bundle savedInstanceState) {
te(savedInstanceState);
id1 = ("id");
content = ing("content");
date1 = ing("date1");
time1 = ing("time1");
on_off = ("on_off");
alarm = ("alarm");
if (date1 != null && () > 0) {
}
}
}
String[] strs = (":");
mHour = nt(strs[0]);
mMinute = nt(strs[1]);
String[] strs = ("/");
mYear = nt(strs[0]);
mMonth = nt(strs[1]);
mDay = nt(strs[2]);
if (time1 != null && () > 0) { 21
// 获得ListView
listView = getListView();
// 实例化LayoutInflater
li = getLayoutInflater();
// 设置ListView Adapter
pter(new ViewAdapter());
// 可多选
iceMode(_MODE_MULTIPLE);
// 获得Calendar实例
final Calendar c = tance();
// 获得当前日期、时间
mYear = ();
mMonth = ();
mDay = (_OF_MONTH);
mHour = (_OF_DAY);
mMinute = ();
// 响应列表单击事件
public void onItemClick(AdapterView> av, View v, int
position,long id) {
temClickListener(new OnItemClickListener() {
switch (position) {
// 设置是否开启提醒
case 0:
ctv1 = (CheckedTextView) v;
if (ked()) {
}
break;
on_off = 0;
on_off = 1;
} else {
// 设置提醒日期
case 1:
showDialog(DATE_DIALOG_ID);
break; 22
}
}
// 设置提醒时间
case 2:
showDialog(TIME_DIALOG_ID);
break;
// 设置提醒内容
case 3:
showDialog1("请输入内容:");
break;
// 设置是否开启语音提醒
case 4:
}
ctv2 = (CheckedTextView) v;
if (ked()) {
alarm = 0;
setAlarm(false);
} else {
}
break;
break;
alarm = 1;
setAlarm(true);
default:
});
protected void onResume() {
}
// ListView Adatper,该类实现了列表的每一项通过自定义视图实现
// 列表显示内容
me();
// 初始化列表
init(getIntent());
class ViewAdapter extends BaseAdapter {
String[] strs = { "是否开启","日期","时间","内容","开启闹钟" }; 23
}
// 获得列表列数
return ;
public int getCount() {
// 返回列表项
public Object getItem(int position) {return position;}
// 返回列表ID
public long getItemId(int position) {
}
// 获得当前列表项视图
public View getView(int position,View convertView,ViewGroup parent) {
View v = e(_row, null);
switch (position) {
// 是否开启该条备忘录
ctv1 = (CheckedTextView) e(
_list_item_multiple_choice, null);
t(strs[position]);
if (on_off == 0) {
cked(false);
cked(true);
}
return ctv1;
} else {
case 0:
return position;
// 提醒日期
case 1:
dateName = (TextView)ewById();
dateDesc = (TextView) ewById();
t(strs[position]);
t(mYear + "/" + mMonth + "/" + mDay);
return v;
// 提醒时间
case 2: 24
timeName = (TextView) ewById();
timeDesc = (TextView) ewById();
t(strs[position]);
t(mHour + ":" + mMinute);
return v;
// 提醒内容
case 3:
contentName = (TextView) ewById();
contentDesc = (TextView)
ewById();
t(strs[position])
t(content);
return v;
// 是否声音提示
case 4:
ctv2 = (CheckedTextView)e(
_list_item_multiple_choice, null);
t(strs[position]);
if (alarm == 0) {
} else {
cked(true);
}
return ctv2;
cked(false);
}
default:
}
return null;
break;
// 显示对话框
protected Dialog onCreateDialog(int id) {
switch (id) {
// 显示日期对话框
case DATE_DIALOG_ID: 25
return new DatePickerDialog(this,
mDateSetListener, mYear, mMonth, mDay);
// 显示时间对话框
case TIME_DIALOG_ID:
return new TimePickerDialog(this,
mTimeSetListener, mHour, mMinute, false);
}
return null;
}
final String BC_ACTION = "ceiver";
// 设置通知提示
private void setAlarm(boolean flag) {
// 获得AlarmManager实例
final AlarmManager am = (AlarmManager)
getSystemService(ALARM_SERVICE);
// 实例化Intent
Intent intent = new Intent();
// 设置Intent action属性
ion(BC_ACTION);
ra("msg", content);
// 实例化PendingIntent
final PendingIntent pi = adcast(
getApplicationContext(), 0, intent, 0);
// 获得系统时间
final long time1 =tTimeMillis();
}
Calendar c = tance();
(mYear, mMonth, mDay, mHour, mMinute);
long time2 = eInMillis();
if (flag&&(time2-time1)>0&&on_off==1){
(_WAKEUP, time2, pi);
}else{
}
(pi); 26
//设置提示日期对话框
private void showDialog1(String msg) {
View v = e(_content, null);
final EditText contentET = (EditText) ewById(t);
t(content);
new r(this).setView(v).setMessage(msg).
setCancelable(false).setPositiveButton("确定",
new kListener() {
public void onClick(DialogInterface dialog, int id) {
content = t().toString();
}
}
t(content);
}).show();
// 时间选择对话框
private SetListener mTimeSetListener =
new SetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
};
// 日期选择对话框
private SetListener mDateSetListener =
};
new SetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
}
int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
t(mYear + "/" + mMonth + "/" + mDay);
mHour = hourOfDay;
mMinute = minute;
t(mHour + ":" + mMinute);
} 27
// 保存或修改备忘录信息
protected void onPause() {
};
// 保存或修改备忘录信息
private void saveOrUpdate() {
ContentValues values = new ContentValues();
();
(T, t().toString());
(1, t().toString());
(1, t().toString());
(_OFF, ked() ? 1 : 0);
(, ked() ? 1 : 0);
// 修改
if (id1 != 0) {
Uri uri=pendedId(
T_URI, id1);
e();
saveOrUpdate();
}
getContentResolver().update(uri, values, null, null);
// 保存
} else {
}
Uri uri = T_URI;
getContentResolver().insert(uri, values);
(3) 文件
package ;
import ;
import lumns;
public final class TaskList {
// 授权常量
public static final String AUTHORITY =
"st";
private TaskList() {} 28
// 内部类
public static final class Tasks implements BaseColumns {
private Tasks() {}
// 访问Uri
public static final Uri CONTENT_URI = ("content://" +
AUTHORITY + "/taskLists");
"/st";
public static final String CONTENT_ITEM_TYPE =
"/st";
// 默认排序常量
public static final String DEFAULT_SORT_ORDER = "created DESC";
// 表字段常量
public static final String CONTENT = "content";
public static final String CREATED= "created";
public static final String DATE1 = "date1";
public static final String TIME1 = "time1";
public static final String ON_OFF = "on_off";
public static final String ALARM = "alarm";
}
}
(4) 文件
package ;
import tivity;
import tUris;
import ;
import ;
import ;
import ;
import ;
import em;
import ;
import .*;
import ;
public static final String CONTENT_TYPE = 29
public class TaskListActivity extends ListActivity {
// 菜单项常量
private static final int NEW = 1;
private static final int DEL = 2;
// 查询列数组
private static final String[] PROJECTION = new String[] {
};
protected void onCreate(Bundle savedInstanceState) {
te(savedInstanceState);
// 获得Intent
final Intent intent = getIntent();
// 设置Uri
if (a() == null) {
}
// 获得ListView
ListView listView = getListView();
// 查询所有备忘录信息
Cursor cursor = managedQuery(getIntent().getData(), PROJECTION,
// 创建Adapter
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
a(T_URI);
Tasks._ID, // 0
T, // 1
D, // 2
, // 3
1, // 4
1, // 5
_OFF // 6
null,null, T_SORT_ORDER);
this, _list_item_2, cursor,
new String[] {Tasks._ID,T },new int[]{ 1,
2 });
// 将备忘录信息显示到ListView
setListAdapter(adapter); 30
// 为ListView添加单击事件监听器
temClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView> av, View v, int
position, long id) {
// 通过ID查询备忘录信息
Uri uri =pendedId(T_URI, id);
Cursor cursor = managedQuery(uri, PROJECTION, null, null,
T_SORT_ORDER);
if(Next()){
int id1 = (0);
String content = ing(1);
String created = ing(2);
int alarm = (3);
String date1 = ing(4);
String time1 = ing(5);
int on_off = (6);
Bundle b = new Bundle();
("id", id1);
ing("content", content);
ing("created", created);
("alarm", alarm);
ing("date1", date1);
ing("time1", time1);
("on_off", on_off);
// 将备忘录信息添加到Intentin
// 启动备忘录详细信息Activity
);
startActivity(intent);
ss(,
}}});}
// 创建选项菜单
public boolean onCreateOptionsMenu(Menu menu) {
(0, NEW, 0, "新建");
(0, DEL, 0, "删除"); 31
}
}
return true;
// 选项菜单项单击方法
public boolean onOptionsItemSelected(MenuItem item) {
}
switch (mId()) {
case NEW:
}
return false;
// 启动备忘录详细信息Activity
Intent intent = new Intent();
ss(this, );
startActivity(intent);
return true;
return true;
case DEL: 32
(5)文件
package ;
import p;
import t.*;
import ;
import eption;
import .*;
import ;
import ils;
import ;
public class TaskListProvider extends ContentProvider {
// 数据库名称常量
private static final String DATABASE_NAME = "task_";
// 数据库版本常量
private static final int DATABASE_VERSION = 1;
// 表名称常量
private static final String TASK_LIST_TABLE_NAME = "taskLists";
// 查询列集合
private static HashMap
// 查询、更新条件
private static final int TASKS = 1;
private static final int TASK_ID = 2;
// Uri工具类
private static final UriMatcher sUriMatcher;
// 数据库工具类实例
private DatabaseHelper mOpenHelper;
// 内部工具类,创建或打开数据库,创建或删除表
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null,DATABASE_VERSION);
}
// 创建表
public void onCreate(SQLiteDatabase db) {
L("CREATE TABLE " + TASK_LIST_TABLE_NAME + " (" 33
+ Tasks._ID + " INTEGER PRIMARY KEY,"
+ 1 + " TEXT,"
+ 1 + " TEXT,"
+ T + " TEXT,"
+ _OFF + " INTEGER,"
+ + " INTEGER,"
+ D + " TEXT" + ");");
}
// 删除表
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
L("DROP TABLE IF EXISTS taskLists");
onCreate(db);
}
}
// 创建或打开数据库
public boolean onCreate() {
mOpenHelper = new DatabaseHelper(getContext());
return true;
}
// 查询
public Cursor query(Uri uri, String[] projection,
String selection, String[] selectionArgs,String sortOrder) {
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
switch ((uri)) {
// 查询所有
case TASKS:
les(TASK_LIST_TABLE_NAME);
jectionMap(sTaskListProjectionMap)
break;
// 根据ID查询
case TASK_ID:
les(TASK_LIST_TABLE_NAME);
jectionMap(sTaskListProjectionMap) 34
Where(Tasks._ID + "=" + hSegments().get(1));
break;
default:
throw new IllegalArgumentException("Uri错误! " + uri);
}
// 使用默认排序
String orderBy;
if(y(sortOrder)) {
orderBy = T_SORT_ORDER;
} else {
orderBy = sortOrder;
}
// 获得数据库实例
SQLiteDatabase db = dableDatabase();
// 返回游标集合
Cursor c = (db, projection, selection, selectionArgs,
null, null, orderBy);
ificationUri(getContext().getContentResolver(), uri);
return c;
}
// 获得类型
public String getType(Uri uri) {
switch ((uri)) {
case TASKS:
return T_TYPE;
case TASK_ID:
return T_ITEM_TYPE;
default:
}
// 保存数据
public Uri insert(Uri uri, ContentValues initialValues) {
if ((uri) != TASKS) {
throw new IllegalArgumentException("错误的 URI: " + uri);
} 35
throw new IllegalArgumentException("错误的 URI: " + uri);
}
ContentValues values;
if (initialValues != null) {
values = new ContentValues(initialValues);
} else {
values = new ContentValues();
}
// 获得数据库实例
SQLiteDatabase db = tableDatabase();
// 保存数据返回行ID
long rowId = (TASK_LIST_TABLE_NAME, T,
values);
if (rowId > 0) {
Uri taskUri = pendedId(
T_URI, rowId);
getContext().getContentResolver().notifyChange(taskUri, null);
return taskUri;
}
throw new SQLException("插入数据失败 "+ uri);
}
// 删除数据
public int delete(Uri uri, String where, String[] whereArgs) {
// 获得数据库实例
SQLiteDatabase db = tableDatabase();
int count;
switch ((uri)) {
// 根据指定条件删除
case TASKS:
count = (TASK_LIST_TABLE_NAME, where, whereArgs);
break;
// 根据指定条件和ID删除
case TASK_ID:
String noteId = hSegments().get(1); 36
count = (TASK_LIST_TABLE_NAME, Tasks._ID + "=" +noteId
+ (!y(where)?" AND ("+where+')':""), whereArgs);
break;
default:
throw new IllegalArgumentException("错误的 URI " + uri);
}
getContext().getContentResolver().notifyChange(uri, null);
return count;
}
// 更新数据
public int update(Uri uri, ContentValues values, String where,
String[] whereArgs) {
// 获得数据库实例
SQLiteDatabase db = tableDatabase();
int count;
switch ((uri)) {
// 根据指定条件更新
case TASKS:
count = (TASK_LIST_TABLE_NAME, values, where,
whereArgs);
break;
// 根据指定条件和ID更新
case TASK_ID:
String noteId = hSegments().get(1);
count = (TASK_LIST_TABLE_NAME, values, Tasks._ID + "=" + noteId+
(!y(where) ? " AND (" + where + ')' : ""), whereArgs);
break;
default:
throw new IllegalArgumentException("错误的 URI " + uri);
}
getContext().getContentResolver().notifyChange(uri, null);
return count;
}
static { 37
// Uri匹配工具类
sUriMatcher = new UriMatcher(
_MATCH);
(ITY, "taskLists", TASKS);
(ITY, "taskLists/#", TASK_ID);
// 实例化查询列集合
sTaskListProjectionMap = new HashMap
// 添加查询列
(Tasks._ID, Tasks._ID);
(T, T);
(D, D);
(, );
(1, 1);
(1, 1);
(_OFF, _OFF);
}
}
(6) 文件
package ;
import t.*;
public class TaskReceiver extends BroadcastReceiver{
}
(7) 文件
xmlns:android="/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> public void onReceive(Context context, Intent intent) { } gs(_ACTIVITY_NEW_TASK); ss(context, ); ctivity(intent); 38 android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/itemlist" />
(8) 文件
(9) item_文件
xmlns:android="/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> android:text="" android:id="@+id/content" android:layout_width="fill_parent" android:layout_height="50px"/>
(10) item_文件
xmlns:android="/apk/res/android" android:id="@+id/vw1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="4px" android:orientation="horizontal"> android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> android:textSize="18sp" android:textStyle="bold" android:layout_width="fill_parent" android:layout_height="wrap_content"/> android:textSize="14sp" android:layout_width="fill_parent" android:paddingLeft="20px" android:layout_height="wrap_content"/>
(11) item_文件
xmlns:android="/apk/res/android" android:id="@+id/vw2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> android:layout_width="wrap_content" android:layout_height="wrap_content"/> android:layout_width="wrap_content" android:layout_height="wrap_content"/>
(12) 文件
xmlns:android="/apk/res/android" 40 android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> android:text="" android:id="@+id/msgTextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"> android:text="取消" android:id="@+id/cancelButton01" android:layout_width="wrap_content" android:layout_height="wrap_content"/> 文件
(13)
package="" android:versionCode="1" android:versionName="1.0"> android:name="E"> android:label="@string/app_name"> android:authorities="st"/> android:name=".TaskListActivity" android:label="@string/app_name"> android:name="TaskDetailActivity"> android:name="TaskReceiver"> android:name="AlarmActivity">
发布者:admin,转转请注明出处:http://www.yc00.com/web/1687840322a49850.html
评论列表(0条)