freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件工程畢業(yè)設(shè)計(jì)-基于android手機(jī)輔助系統(tǒng)-資料下載頁(yè)

2025-11-24 17:02本頁(yè)面

【導(dǎo)讀】本科畢業(yè)論文(設(shè)計(jì)). 青島大學(xué)本科生畢業(yè)論文(設(shè)計(jì))方萌

  

【正文】 。 首先定義 dialog 的標(biāo)題和內(nèi)容: final CharSequence strDialogTitle=getString()。 final CharSequence strDialogBody=getString()。 然后顯示 dialog: //顯示 Dialog sendmsg_Dialog=( , strDialogTitle, strDialogBody, true )。 在顯示 dialog 后,啟動(dòng)一個(gè)線程來(lái)調(diào)用選擇聯(lián)系人的 Activity,當(dāng)完成對(duì)選擇聯(lián)系人窗口的啟動(dòng)后, dialog 銷毀,代碼如下 : …… new Thread(new Runnable(){ public void run() { //new一個(gè) Intent對(duì)象,并制定 class Intent intent=new Intent()。 (,)。 startActivityForResult(intent,0)。//此函數(shù)可以返回被叫 activity傳來(lái)的數(shù)據(jù) ()。 } }).start()。 …… 青島大學(xué)本科生畢業(yè)論文(設(shè)計(jì)) 方萌 24 圖 dialog 完成上面的步驟就進(jìn)入“選擇聯(lián)系人”頁(yè)面, 利用游標(biāo) cursor 讀取手機(jī)里的聯(lián)系人 ,方法如下 : //取得 電話本中開(kāi)始一項(xiàng)的光標(biāo) Cursor cursor = (, null, null, null, null)。 while (()) { MapString, String map = new HashMapString, String()。 // 取得聯(lián)系人名字 int nameFieldColumnIndex = ()。 String name = (nameFieldColumnIndex)。 // 取得聯(lián)系人 ID String contactId = (())。 在 android2 系列以后,每個(gè)聯(lián)系人的電話可存放多個(gè),所以要再定義一個(gè)游標(biāo)來(lái)循環(huán)讀取電話號(hào)碼: Cursor phone = (, null, + = + contactId, null, null)。 (NAME, name)。 // 取得電話號(hào)碼 (可能存在多個(gè)號(hào)碼 ),在此處無(wú)用 while (()) { String strPhoneNumber = 青島大學(xué)本科生畢業(yè)論文(設(shè)計(jì)) 方萌 25 ((.))。 (PHONE_NUMBER, strPhoneNumber)。 } (map)。 ()。 //關(guān)閉游標(biāo) } ()。//關(guān)閉游標(biāo) 本 頁(yè)面的格式與之前的設(shè)置類似 ,都是相對(duì)布局格式 ,在此就不必 贅述 ,唯一不同的是 listview 的格式有所改變 ( 寫在 文件中 ) : LinearLayout …… RelativeLayout …… ImageView android:id=@+id/tag ……/ LinearLayout …… android:layout_toRightOf=@id/tag TextView android:id=@+id/multiple_title …… android:layout_marginLeft=5dip/ TextView android:id=@+id/multiple_summary …… android:layout_marginLeft=5dip/ /LinearLayout CheckBox android:id=@+id/multiple_checkbox …… android:layout_marginTop=6dip android:focusable=false android:focusableInTouchMode=false android:clickable=false android:layout_alignParentRight=true / /RelativeLayout /LinearLayout 在此特別注意以上代碼 checkbox 中的如下三行: android:focusable=false android:focusableInTouchMode=false android:clickable=false 如果 不將 checkbox 的焦點(diǎn)設(shè)為 false, 它 會(huì)覆蓋 listview,從而導(dǎo)致點(diǎn)擊listview 時(shí)不能獲得焦點(diǎn)。 而為了使 checkbox 可選,可在 listview 的點(diǎn)擊事件中用代碼實(shí) 現(xiàn): 青島大學(xué)本科生畢業(yè)論文(設(shè)計(jì)) 方萌 26 public void onItemClick(AdapterView? parent, View view, int position, long id) { CheckBox checkBox = (CheckBox)()。 ()。//切換狀態(tài) (position, ())。 ……} 為了防止向變 量中傳入空值,若用戶沒(méi)有選擇聯(lián)系人,“確定 ” 按鈕就會(huì)失效 ,原理是統(tǒng)計(jì)被選擇的 checkbox 個(gè)數(shù),若個(gè)數(shù)為 0,則按鈕失效 : if(()){ checked_count+=1。 }else{ checked_count=1。 } //若多選框?yàn)榭談t按鍵失效 if(checked_count==0){ (false)。 }else{ (true)。 } 下面實(shí)現(xiàn)將所選的聯(lián)系人信息回調(diào)給上一個(gè) Activity,即 Smss。因?yàn)榇薃ctivity是用 startActivityForResult函數(shù)調(diào)出的,要傳回?cái)?shù)據(jù)到主 Activity,需要 將數(shù)據(jù)分別存放到名為“ str_name”和“ str_phone”的 Extra 空間變量中,用 如下代碼實(shí)現(xiàn): Uri uri = (back info)。 Intent data = new Intent(null, uri)。 ()。//最小化內(nèi)存系統(tǒng)開(kāi)銷 ()。 (str_name, str_name)。 (str_phone, str_phone)。 setResult(, data)。 ()。 最終運(yùn)行效果圖如圖 所示: 青島大學(xué)本科生畢業(yè)論文(設(shè)計(jì)) 方萌 27 圖 ,左圖為為選擇時(shí) 效果 ,右圖為選擇后的 效果 當(dāng)點(diǎn)擊添加按鈕后,頁(yè)面返回短信群發(fā)主頁(yè)面,效果如 ,在此不必重復(fù)貼圖。 聯(lián)系人稱謂的刪除和修改 選擇好聯(lián)系人以后,就可以根據(jù)聯(lián)系人列表逐條發(fā)送短信了,用戶可選擇在短信內(nèi)容中插入聯(lián)系人稱謂,稱謂默認(rèn)是系統(tǒng)中的姓名,若用戶對(duì)稱謂不滿意,可長(zhǎng)按其對(duì)應(yīng)的列表項(xiàng),則會(huì)彈出修改和刪除的對(duì)話框。長(zhǎng)按鍵的事件里實(shí)例化一個(gè)對(duì)話框即可: class listLongListener implements OnItemLongClickListener{ public boolean onItemLongClick(AdapterView? arg0, View arg1, final int i, long arg3) { listener1=new () { public void onClick(DialogInterface dialog, int which) { …… } } }。 String[] menu={getString(), getString(), getString()}。 new () .setTitle((i)) .setItems(menu, listener1) .setNegativeButton(getString(), new (){ 青島大學(xué)本科生畢業(yè)論文(設(shè)計(jì)) 方萌 28 public void onClick(DialogInterface dialog, int which) { } }).show()。 return false。 } } 實(shí)現(xiàn) 效果如圖 所示: 圖 這里的 which 就代表彈出列表的 ID,這里用 switch 選擇判斷語(yǔ)句對(duì)用戶點(diǎn)擊的列表項(xiàng)目進(jìn)行判斷 : switch(which){ case 0://選擇 item為更改稱謂 …… break。 case 1://選擇 item為從列表中刪除 …… break。 case 2://選擇 item為清空列表 …… break。 default: …… break。 點(diǎn)擊 列表第一項(xiàng),即可彈出更改稱謂對(duì)話框, 同時(shí)對(duì)存儲(chǔ)稱謂的變量和用于青島大學(xué)本科生畢業(yè)論文(設(shè)計(jì)) 方萌 29 顯示稱謂列表的變量進(jìn)行更新 , 之前已說(shuō)明過(guò), name 是一個(gè) arraylist 類型的數(shù)組,所以要修改相應(yīng)的內(nèi)容,要調(diào)用 set()方法進(jìn)行修改, al1 同理。同時(shí)將內(nèi)容更新到 al1中, 然后用 notifyDataSetChanged()方法 對(duì)列表 的 顯示進(jìn)行更新,需要注意的是,若修改后的成為為空,則不作處理,仍為原來(lái)的稱謂, 代碼如下: /* create更改稱謂時(shí)彈出的 Dialog */ LayoutInflater factory = ()。 AlertDialog renameDialog=new ().create()。 myView=(,null)。 renameEdit=(EditText)()。 ((i))。 listener2= new () { public void onClick(DialogInterface dialog, int which) { if(!().toString().equals()){ (i, ().toString())。//更改稱謂(發(fā)送信息時(shí)以name phone為準(zhǔn)) // 更新列表 MapString, String map = new HashMapString, String()。 (SELECTED_NAME, (i))。 SmssAdapter newsmssAdapter=(SmssAdapter)()。 (i, map)。 ()。 } } }。 (myView)。 (getString(),listener2)。//確定 (getString(),//取消 new () { public void onClick(DialogInterface dialog, int which) { } })。 ()。 修改稱謂窗口效果如圖 所示: 青島大學(xué)本科生畢業(yè)論文(設(shè)計(jì)) 方萌 30 圖 ccc為 abc,左圖為修改窗口,右圖為修改結(jié)果 移除選出列表里某個(gè)聯(lián)系人的原理同上,當(dāng)在列表 dialog 中點(diǎn)擊第二項(xiàng)時(shí),即移除了相應(yīng)的所選擇的聯(lián)系人,內(nèi)容和列表顯示的值都修改后,對(duì) listview進(jìn)行刷新,即調(diào)用 notifyDataSetChanged()方法: (i)。//移除所選內(nèi)容 (i)。//同時(shí)移除 phone,否則名稱和號(hào)碼無(wú)法對(duì)應(yīng) SmssAdapter newsmssAdapter=(SmssAdapter)()。 (i)。 if(()==0){//name和 phone沒(méi)有徹底變?yōu)?null,而是成了 “[]
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1