Android開(kāi)發(fā)(智能備忘錄系統(tǒng)).doc_第1頁(yè)
Android開(kāi)發(fā)(智能備忘錄系統(tǒng)).doc_第2頁(yè)
Android開(kāi)發(fā)(智能備忘錄系統(tǒng)).doc_第3頁(yè)
Android開(kāi)發(fā)(智能備忘錄系統(tǒng)).doc_第4頁(yè)
Android開(kāi)發(fā)(智能備忘錄系統(tǒng)).doc_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

*大學(xué)智能終端開(kāi)發(fā)課程設(shè)計(jì)說(shuō)明書(shū)課題名稱(chēng):姓 名:學(xué) 號(hào):專(zhuān) 業(yè):班 級(jí):指導(dǎo)教師: 2014年12月25日目 錄第一章 概 述-第二章 需求分析- 2.1 系統(tǒng)主要內(nèi)容- 2.2 基本要求- 2.3設(shè)計(jì)需要結(jié)合使用的技術(shù)-2.4模塊的功能性概述-第三章 概要設(shè)計(jì)- 3.1 系統(tǒng)的功能結(jié)構(gòu)- 3.2 系統(tǒng)的模塊結(jié)構(gòu)- 3.3 各模塊的活動(dòng)圖- 第四章 詳細(xì)設(shè)計(jì)- 4.1 布局文件- 4.2備忘錄數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)-4.3備忘錄的列表展示- 4.4備忘錄的維護(hù)-4.5備忘錄的定時(shí)提醒-第5章 調(diào)試分析- 第六章 設(shè)計(jì)總結(jié)- 第七章 參考文獻(xiàn)- 第八章 附錄- 第一章 概述 對(duì)于很多人來(lái)說(shuō),隨時(shí)帶個(gè)小本子記錄一些事情是很有必要的事情,從而出現(xiàn)了備忘錄。有了備忘錄,可以將自己的工作和生活安排的更有條理,在有限的時(shí)間內(nèi)完成最重要、最緊急的事情。隨著智能手機(jī)逐漸走進(jìn)普通人的生活,它正在成為人們獲取信息的主要設(shè)備,而且智能手機(jī)是他們獲取信息最方便、最快捷的途徑。因此,對(duì)于所有擁有的手機(jī)的用戶(hù)來(lái)說(shuō),可以隨時(shí)隨地便捷的通過(guò)手機(jī)備忘錄來(lái)實(shí)現(xiàn)重要事情的記錄與提醒,省去了隨身攜帶紙筆的麻煩。現(xiàn)如今搭載Android系統(tǒng)平臺(tái)的手機(jī)已占有超過(guò)70%的市場(chǎng)份額,所以,在Android系統(tǒng)下的備忘錄軟件中,用戶(hù)可以非常方便的查詢(xún)事件備忘,為工作、出游、生活雜碎事提供整理記錄功能。開(kāi)發(fā)一款能在Android系統(tǒng)上使用,且性能卓越的備忘錄是非常有必要且前途光明。第二章 需求分析2.1、系統(tǒng)主要內(nèi)容:(1)、基于Android系統(tǒng)平臺(tái)研發(fā)出備忘錄;(2)、通過(guò)安裝備忘錄,防止手機(jī)用戶(hù)遺忘某個(gè)時(shí)間的重要工作,進(jìn)行記錄并在特定時(shí)間通過(guò)聲音,文字或振動(dòng)提醒用戶(hù);(3)、主要模塊有:備忘錄數(shù)據(jù)存儲(chǔ)、列表瀏覽、數(shù)據(jù)維護(hù)和定時(shí)提醒等模塊。2.2、基本要求:(1)、基于Android系統(tǒng)平臺(tái)研發(fā)出備忘錄,以防止手機(jī)用戶(hù)遺忘某個(gè)時(shí)間的重要工作,進(jìn)行記錄并在特定時(shí)間通過(guò)聲音,文字或振動(dòng)提醒用戶(hù)。(2)、主要設(shè)計(jì)出備忘錄數(shù)據(jù)存儲(chǔ)、列表瀏覽、數(shù)據(jù)維護(hù)和定時(shí)提醒等模塊。已學(xué)習(xí)掌握Android系統(tǒng)平臺(tái)和Java編程技術(shù),并要求軟件界面簡(jiǎn)潔專(zhuān)業(yè),功能完善,真正為用戶(hù)提供重要工作備忘功能。2.3、設(shè)計(jì)需要結(jié)合使用的技術(shù):(1)、Eclipse平臺(tái):Eclipse 是一個(gè)運(yùn)行插件的平臺(tái)。可以下載安裝 Eclipse Classic 的最新版本。(2)、Android Developer Tools:按照安裝說(shuō)明安裝 Android Developer Tools(Eclipse 插件)。2.4、模塊的功能性概述:(1)、備忘錄數(shù)據(jù)存儲(chǔ)實(shí)現(xiàn):備忘錄的最重要功能就是記錄和保存用戶(hù)容易遺忘的日期和事件,為了持久地將用戶(hù)的備忘錄信息保存下來(lái),需要將這些信息存儲(chǔ)在數(shù)據(jù)庫(kù)中。備忘錄需要保存的信息有:編號(hào)(ID)、提醒日期(Date1)、提醒時(shí)間(Time1)、提醒內(nèi)容(Content)、是否啟用(ON_OFF)、是否聲音提醒(ALARM)、創(chuàng)建時(shí)間(CREATED)等.(2)、備忘錄列表展示:用戶(hù)可能需要?jiǎng)?chuàng)建很多條備忘錄信息,并且需要維護(hù)這些備忘錄信息,例如刪除、修改等功能。備忘錄的列表展示能使用戶(hù)界面更加簡(jiǎn)潔清晰,并帶給用戶(hù)使用方便(3)、備忘錄維護(hù):備忘錄維護(hù)是該應(yīng)用程序的核心部分,提供了添加、修改、刪除備忘錄信息的功能,提供備忘錄動(dòng)態(tài)更新的功能。(4)、備忘錄定時(shí)提醒:備忘錄的第一需求是能夠有效提醒用戶(hù)置辦已記錄的事件,從而達(dá)到真正避免遺忘的效果,為了更好的提醒用戶(hù)在特定時(shí)間做某項(xiàng)工作,要設(shè)置語(yǔ)音和震動(dòng)等功能。第三章 概要設(shè)計(jì)3.1、系統(tǒng)的功能結(jié)構(gòu):開(kāi)始設(shè)置是否開(kāi)啟設(shè)置日期時(shí)間備忘錄內(nèi)容結(jié)束開(kāi)啟鬧鐘3.2、系統(tǒng)的模塊結(jié)構(gòu):3.3、各模塊的活動(dòng)圖:3.3.1、添加備忘錄添加日期、時(shí)間、鬧鈴:添加內(nèi)容:3.3.2、查看備忘錄3.3.3修改備忘錄 修改日期、時(shí)間、鬧鈴:修改內(nèi)容:3.3.4刪除備忘錄第四章 詳細(xì)設(shè)計(jì) 4.1、布局文件main.xmlfill_parent:使視圖元素占滿(mǎn)可用的空間。也可以認(rèn)為這就是 “拉伸”。4.2、備忘錄數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)為了使備忘錄數(shù)據(jù)表具有通用的數(shù)據(jù)共享訪(fǎng)問(wèn)機(jī)制,需要通過(guò)ContentProvider來(lái)實(shí)現(xiàn)。這里定義一個(gè)TaskListProvider類(lèi),該類(lèi)繼承ContentProvider,實(shí)現(xiàn)了onCreat、query、getType、insert、delete、update等方法,來(lái)支持?jǐn)?shù)據(jù)的增、刪、查、改等操作。在該類(lèi)內(nèi)部還定義了一個(gè)DatabaseHelper內(nèi)部類(lèi)繼承SQLiteHelper,該類(lèi)提供了常見(jiàn)或打開(kāi)數(shù)據(jù)庫(kù)、創(chuàng)建或刪除表的功能。4.3、備忘錄的列表展示:這里通過(guò)一個(gè)ListActivity來(lái)展示備忘錄列表,通過(guò)選項(xiàng)菜單提供維護(hù)數(shù)據(jù)接口。4.4、備忘錄的維護(hù):當(dāng)用戶(hù)單擊主界面的一個(gè)列表時(shí)會(huì)在上述列表展示中提到的setOnItemClickListener方法中響應(yīng),此方法體中定義一個(gè)Intent對(duì)象,使用setClass方法實(shí)現(xiàn)界面跳轉(zhuǎn)到此TaskDetailActivity所對(duì)應(yīng)的界面4.5、備忘錄的定時(shí)提醒:此功能通過(guò)定義Activity發(fā)出廣播,BroadcastReceiver接收廣播,并通過(guò)Notification提醒用戶(hù)。4.5.1定義提醒廣播接收器當(dāng)用戶(hù)選擇了備忘錄信息中的“開(kāi)啟鬧鐘”選項(xiàng)時(shí),便通過(guò)廣播的方式啟動(dòng)一個(gè)定時(shí)鬧鐘,之后定義一個(gè)廣播接收器接收廣播。4.5.2廣播接收器實(shí)現(xiàn)如下4.5.3顯示提醒Activity:第五章 調(diào)試分析程序運(yùn)行:列表展示:備忘錄維護(hù):備忘錄定時(shí)提醒: 總體來(lái)說(shuō),調(diào)試過(guò)程中基本沒(méi)有出現(xiàn)系統(tǒng)性錯(cuò)誤,軟件健壯性良好,測(cè)試數(shù)據(jù)隨機(jī)采用,基本實(shí)現(xiàn)軟件要實(shí)現(xiàn)的需求。第六章 設(shè)計(jì)總結(jié)經(jīng)過(guò)一個(gè)多月的學(xué)習(xí)和研究,本次課程設(shè)計(jì)終于圓滿(mǎn)完成,雖然耗費(fèi)了許多精力和時(shí)間,設(shè)計(jì)過(guò)程中也出現(xiàn)了許多問(wèn)題,但通過(guò)網(wǎng)上資料的查詢(xún)、圖書(shū)館圖書(shū)的借閱以及同學(xué)們的幫助,最終也逐一得到了解決。通過(guò)本次課程設(shè)計(jì),我了解到實(shí)踐經(jīng)驗(yàn)對(duì)于學(xué)生的重要性。備忘錄軟件的開(kāi)發(fā)使我對(duì)書(shū)本上的知識(shí)點(diǎn)和理論有了更深一層的了解,使我學(xué)會(huì)了如何利用所學(xué)的知識(shí),把理論結(jié)合于實(shí)踐中,進(jìn)一步掌握了開(kāi)發(fā)基于Android平臺(tái)的軟件的流程。本次課程設(shè)計(jì)主要研究了Android平臺(tái)的架構(gòu)以及在Android平臺(tái)上開(kāi)發(fā)備忘錄軟件,此應(yīng)用除了具備簡(jiǎn)單備忘功能外,還具備簡(jiǎn)單數(shù)據(jù)處理功能以及鬧鐘提醒相對(duì)高級(jí)點(diǎn)的功能。本次課程設(shè)計(jì)在Android平臺(tái)以及在該平臺(tái)上開(kāi)發(fā)手機(jī)備忘錄軟件上做了大量的工作,但仍有許多地方值得進(jìn)一步探討研究,如:界面設(shè)計(jì)如何更加美觀簡(jiǎn)潔,軟件的移植性、兼容性如何等。Android開(kāi)發(fā)是一個(gè)開(kāi)放的平臺(tái),需要不斷進(jìn)行內(nèi)容添加和補(bǔ)充,這也就要求我們學(xué)生不斷學(xué)習(xí)新知識(shí),從而使軟件功能不斷擴(kuò)展。 同時(shí),本次課程設(shè)計(jì)讓我對(duì)智能終端開(kāi)發(fā)這門(mén)課程有了更深層次的了解,也讓我發(fā)現(xiàn)了自我存在的不足,今后,在Android開(kāi)發(fā)的學(xué)習(xí)之路上,我必須更加重視實(shí)踐與理論的結(jié)合,在系統(tǒng)的擴(kuò)展性方面花費(fèi)更多的精力去學(xué)習(xí)。第七章 參考文獻(xiàn)【1】零點(diǎn)起飛學(xué) Android開(kāi)發(fā)徐誠(chéng) 著,清華大學(xué)出版社2Android基礎(chǔ)教程 (美)伯內(nèi)特 著,張波 等譯/2009年11月/人民郵電出版社3Android應(yīng)用程序開(kāi)發(fā),王向輝,張國(guó)印,沈潔 編著/2010年3月/清華大學(xué)出版社 4Java寶典,孫瀏毅 等編著/2009年8月/電子工業(yè)大學(xué)出版社 5XML程序設(shè)計(jì)使用教程,張亞飛,湯桂風(fēng) 編著/2010年8月/北京師范大學(xué)出版社 6Java編程思想(美)Bruce Eckel著,陳昊鵬 譯/2011年4月/機(jī)械工業(yè)出版社 7Android程序設(shè)計(jì)基礎(chǔ)郝玉龍/2011年1月/清華大學(xué)出版社第八章 附 錄(1) AlarmActivity.java文件package com.amaker.ch17.app;import android.app.*;import android.content.Context;import .Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class AlarmActivity extends Activity public static final int ID = 1;protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.alarm);/ 獲得Button、TextView實(shí)例Button btn = (Button) findViewById(R.id.cancelButton01);TextView tv = (TextView)findViewById(R.id.msgTextView01);/獲得NotificationManager實(shí)例String service = Context.NOTIFICATION_SERVICE; final NotificationManager nm =(NotificationManager)getSystemService(service);/ 實(shí)例化NotificationNotification n = new Notification();/ 設(shè)置顯示提示信息,該信息也會(huì)在狀態(tài)欄顯示String msg = getIntent().getStringExtra(msg);n.tickerText = msg;/ 顯示時(shí)間tv.setText(msg);/ 設(shè)置聲音提示n.sound = Uri.parse(file:/sdcard/fallbackring.ogg);nm.notify(ID, n);/ 發(fā)出通知/ 取消通知btn.setOnClickListener(new OnClickListener() public void onClick(View v) nm.cancel(ID);finish(););(2) TaskDetailActivity.java文件package com.amaker.ch17.app;import java.util.Calendar;import android.app.*;import android.content.*;import .Uri;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.*;import com.amaker.ch17.app.TaskList.Tasks;public class TaskDetailActivity extends ListActivity / 備忘錄信息列表private ListView listView = null;private int mYear;/ 提醒日期private int mMonth;private int mDay;private int mHour;/ 提醒時(shí)間private int mMinute;/ 日期顯示TextViewprivate TextView dateName, dateDesc;/ 時(shí)間顯示TextViewprivate TextView timeName, timeDesc;/ 提醒內(nèi)容TextViewprivate TextView contentName, contentDesc;private int on_off = 0;/ 是否開(kāi)啟提醒private int alarm = 0;/ 是否聲音警告/ 顯示日期、時(shí)間對(duì)話(huà)框常量static final int DATE_DIALOG_ID = 0;static final int TIME_DIALOG_ID = 1;/ 保存內(nèi)容、日期、時(shí)間字符串private String content, date1, time1;private int id1;/ 備忘錄IDprivate CheckedTextView ctv1, ctv2;/ 多選框private LayoutInflater li;/ 訪(fǎng)問(wèn)布局實(shí)例/ 初始化方法private void init(Intent intent) Bundle b = intent.getBundleExtra(b);if (b != null) id1 = b.getInt(id);content = b.getString(content);date1 = b.getString(date1);time1 = b.getString(time1);on_off = b.getInt(on_off);alarm = b.getInt(alarm);if (date1 != null & date1.length() 0) String strs = date1.split(/);mYear = Integer.parseInt(strs0);mMonth = Integer.parseInt(strs1);mDay = Integer.parseInt(strs2);if (time1 != null & time1.length() 0) String strs = time1.split(:);mHour = Integer.parseInt(strs0);mMinute = Integer.parseInt(strs1);public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);/ 獲得ListViewlistView = getListView();/ 實(shí)例化LayoutInflaterli = getLayoutInflater();/ 設(shè)置ListView Adapter listView.setAdapter(new ViewAdapter();/ 可多選listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);/ 獲得Calendar實(shí)例final Calendar c = Calendar.getInstance();/ 獲得當(dāng)前日期、時(shí)間mYear = c.get(Calendar.YEAR);mMonth = c.get(Calendar.MONTH);mDay = c.get(Calendar.DAY_OF_MONTH);mHour = c.get(Calendar.HOUR_OF_DAY);mMinute = c.get(Calendar.MINUTE);/ 響應(yīng)列表單擊事件listView.setOnItemClickListener(new OnItemClickListener() public void onItemClick(AdapterView av, View v, intposition,long id) switch (position) / 設(shè)置是否開(kāi)啟提醒case 0:ctv1 = (CheckedTextView) v;if (ctv1.isChecked() on_off = 0; else on_off = 1;break;/ 設(shè)置提醒日期case 1:showDialog(DATE_DIALOG_ID);break;/ 設(shè)置提醒時(shí)間case 2:showDialog(TIME_DIALOG_ID);break;/ 設(shè)置提醒內(nèi)容case 3:showDialog1(請(qǐng)輸入內(nèi)容:);break;/ 設(shè)置是否開(kāi)啟語(yǔ)音提醒case 4:ctv2 = (CheckedTextView) v;if (ctv2.isChecked() alarm = 0;setAlarm(false); else alarm = 1;setAlarm(true);break;default:break;);protected void onResume() super.onResume();/ 初始化列表init(getIntent();/ ListView Adatper,該類(lèi)實(shí)現(xiàn)了列表的每一項(xiàng)通過(guò)自定義視圖實(shí)現(xiàn)class ViewAdapter extends BaseAdapter / 列表顯示內(nèi)容String strs = 是否開(kāi)啟,日期,時(shí)間,內(nèi)容,開(kāi)啟鬧鐘 ;/ 獲得列表列數(shù)public int getCount() return strs.length;/ 返回列表項(xiàng)public Object getItem(int position) return position;/ 返回列表IDpublic long getItemId(int position) return position;/ 獲得當(dāng)前列表項(xiàng)視圖public View getView(int position,View convertView,ViewGroup parent) View v = li.inflate(R.layout.item_row, null);switch (position) / 是否開(kāi)啟該條備忘錄case 0:ctv1 = (CheckedTextView) li.inflate(android.R.layout.simple_list_item_multiple_choice, null);ctv1.setText(strsposition);if (on_off = 0) ctv1.setChecked(false); else ctv1.setChecked(true);return ctv1;/ 提醒日期case 1:dateName = (TextView)v.findViewById(R.);dateDesc = (TextView) v.findViewById(R.id.desc);dateName.setText(strsposition);dateDesc.setText(mYear + / + mMonth + / + mDay);return v;/ 提醒時(shí)間case 2:timeName = (TextView) v.findViewById(R.);timeDesc = (TextView) v.findViewById(R.id.desc);timeName.setText(strsposition);timeDesc.setText(mHour + : + mMinute);return v;/ 提醒內(nèi)容case 3:contentName = (TextView) v.findViewById(R.);contentDesc = (TextView) v.findViewById(R.id.desc);contentName.setText(strsposition)contentDesc.setText(content);return v;/ 是否聲音提示case 4:ctv2 = (CheckedTextView)li.inflate(android.R.layout.simple_list_item_multiple_choice, null); ctv2.setText(strsposition);if (alarm = 0) ctv2.setChecked(false); else ctv2.setChecked(true);return ctv2;default:break;return null;/ 顯示對(duì)話(huà)框protected Dialog onCreateDialog(int id) switch (id) / 顯示日期對(duì)話(huà)框case DATE_DIALOG_ID:return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);/ 顯示時(shí)間對(duì)話(huà)框case TIME_DIALOG_ID:return new TimePickerDialog(this,mTimeSetListener, mHour, mMinute, false);return null;final String BC_ACTION = com.amaker.ch17.TaskReceiver;/ 設(shè)置通知提示private void setAlarm(boolean flag) / 獲得AlarmManager實(shí)例final AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);/ 實(shí)例化IntentIntent intent = new Intent();/ 設(shè)置Intent action屬性intent.setAction(BC_ACTION);intent.putExtra(msg, content);/ 實(shí)例化PendingIntentfinal PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);/ 獲得系統(tǒng)時(shí)間final long time1 =System.currentTimeMillis();Calendar c = Calendar.getInstance();c.set(mYear, mMonth, mDay, mHour, mMinute);long time2 = c.getTimeInMillis();if (flag&(time2-time1)0&on_off=1)am.set(AlarmManager.RTC_WAKEUP, time2, pi);elseam.cancel(pi);/設(shè)置提示日期對(duì)話(huà)框private void showDialog1(String msg) View v = li.inflate(R.layout.item_content, null);final EditText contentET = (EditText) v.findViewById(R.id.content);contentET.setText(content);new AlertDialog.Builder(this).setView(v).setMessage(msg).setCancelable(false).setPositiveButton(確定,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int id) content = contentET.getText().toString();contentDesc.setText(content);).show();/ 時(shí)間選擇對(duì)話(huà)框private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() public void onTimeSet(TimePicker view, int hourOfDay, int minute) mHour = hourOfDay;mMinute = minute;timeDesc.setText(mHour + : + mMinute); ;/ 日期選擇對(duì)話(huà)框private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) mYear = year;mMonth = monthOfYear;mDay = dayOfMonth;dateDesc.setText(mYear + / + mMonth + / + mDay);/ 保存或修改備忘錄信息protected void onPause() super.onPause();saveOrUpdate();/ 保存或修改備忘錄信息private void saveOrUpdate() ContentValues values = new ContentValues();values.clear();values.put(Tasks.CONTENT, contentDesc.getText().toString();values.put(Tasks.DATE1, dateDesc.getText().toString();values.put(Tasks.TIME1, timeDesc.getText().toString();values.put(Tasks.ON_OFF, ctv1.isChecked() ? 1 : 0);values.put(Tasks.ALARM, ctv2.isChecked() ? 1 : 0);/ 修改if (id1 != 0) Uri uri=ContentUris.withAppendedId(Tasks.CONTENT_URI, id1);getContentResolver().update(uri, values, null, null);/ 保存 else Uri uri = TaskList.Tasks.CONTENT_URI;getContentResolver().insert(uri, values);(3) TaskList.java文件package com.amaker.ch17.app;import .Uri;import vider.BaseColumns;public final class TaskList / 授權(quán)常量public static final String AUTHORITY = vider.TaskList; private TaskList() / 內(nèi)部類(lèi) public static final class Tasks implements BaseColumns private Tasks() / 訪(fǎng)問(wèn)Uri public static final Uri CONTENT_URI = Uri.parse(content:/ + AUTHORITY + /taskLists);public static final String CONTENT_TYPE = vnd.android.cursor.dir/vnd.amaker.tasklist; public static final String CONTENT_ITEM_TYPE = vnd.android.cursor.item/vnd.amaker.tasklist; / 默認(rèn)排序常量 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) TaskListActivity.java文件package com.amaker.ch17.app;import android.app.ListActivity;import android.content.ContentUris;import android.content.Intent;import android.database.Cursor;import .Uri;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.*;import com.amaker.ch17.app.TaskList.Tasks;public class TaskListActivity extends ListActivity / 菜單項(xiàng)常量private static final int NEW = 1;private static final int DEL = 2;/ 查詢(xún)列數(shù)組private static final String PROJECTION = new String Tasks._ID, / 0Tasks.CONTENT, / 1Tasks.CREATED, / 2Tasks.ALARM, / 3Tasks.DATE1, / 4Tasks.TIME1, / 5Tasks.ON_OFF / 6;protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);/ 獲得Intentfinal Intent intent = getIntent();/ 設(shè)置Uriif (intent.getData() = null) intent.setData(Tasks.CONTENT_URI);/ 獲得ListViewListView listView = getListView();/ 查詢(xún)所有備忘錄信息Cursor cursor = managedQuery(getIntent().getData(), PROJECTION, null,null, Tasks.DEFAULT_SORT_ORDER);/ 創(chuàng)建AdapterSimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, new String Tasks._ID,Tasks.CONTENT ,new int android.R.id.text1,android.R.id.text2 );/ 將備忘錄信息顯示到ListViewsetListAdapter(adapter);/ 為L(zhǎng)istView添加單擊事件監(jiān)聽(tīng)器listView.setOnItemClickListener(new OnItemClickListener() public void onItemClick(AdapterView av, View v, int position, long id) / 通過(guò)ID查詢(xún)備忘錄信息Uri uri =ContentUris.withAppendedId(Tasks.CONTENT_URI, id);Cursor cursor = managedQuery(uri, PROJECTION, null, null, Tasks.DEFAULT_SORT_ORDER);if(cursor.moveToNext()int id1 = cursor.getInt(0);String content = cursor.getString(1);String created = cursor.getString(2);int alarm = cursor.getInt(3);String date1 = cursor.getString(4);String time1 = cursor.getString(5);int on_off = cursor.getInt(6);Bundle b = new Bundle();b.putInt(id, id1);b.putString(content, content);b.putString(created, created);b.putInt(alarm, alarm);b.putString(date1, date1);b.putString(time1, time1);b.putInt(on_off, on_off);/ 將備忘錄信息添加到Intentin/ 啟動(dòng)備忘錄詳細(xì)信息Activityintent.setClass(TaskListActivity.this,TaskDetailActivity.class);startActivity(intent););

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論