AndroidDev 板


LINE

大家好 最近開始接觸android 有一個比較關於 design上的問題請教各位 常常會在非activity的class內需要update UI element. 這時候這個ui element物件從哪來的?? 到底該怎麼設計會比較優雅 假設receiver收到intent後要更新ui 我自己想到的方式有以下幾個 1.無腦把receiver寫在Activity inner class, 這樣也不用刻意傳遞ui 物件 想存取誰就存取誰, 但這時又想到 若這receiver有可能會存取 另一個activity底下的ui 這樣就不能寫在inner class了?? 2. Activity new 一個Handler 和對應要執行的Runnable物件到receiver裡面 等到收到intent後 直接執行post 讓他去跑我的Runnable(當然這runnable又要寫在inner) 感覺這比1 漂亮一些... 3. 把所有Activity用到的UI 物件都抽出來到一個class內 例如 class Activity1UI{static public TextView t;.....} class Activity2UI{......} 這樣不管是要在哪裡存取哪個activity的UI 都直接存static物件取得 但這方法我自己覺得是要刻意判斷這物件是不是null(剛好activity並不存在的情況) 4. 當然就是最苦力的 class要存取哪個ui 就在constructor開介面讓使用的人傳進來 但這個寫法就很不彈性了...新增或是刪除ui 都要改很多地方... 以上是我新手能想到的方法@@ 請問各位告訴我有什麼好方式或是standard pattern可以學習的 請指教 謝謝 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.218.216.157
1F:→ gn00742754:非Activity Class中寫event listener,建構的時候傳 12/29 04:15
2F:→ gn00742754:實作近來 12/29 04:15
3F:→ QQ29:listener在java也只是自己開界面傳物件,這樣等於listener也 12/29 11:23
4F:→ QQ29:會遇到我問的問題吧?除非activity本身就是listener,但這樣架 12/29 11:23
5F:→ QQ29:構變很怪 12/29 11:23
6F:推 sdyy:用一 在onresume註冊 onpause註銷 就好啦 12/29 11:33
7F:推 tac0wu:你的意思是想一個reciver instance控制複數個Activity? 12/29 15:06
8F:→ tac0wu:receiver 12/29 15:07
9F:→ tac0wu:這我第一個想到就是 memory leak 的問題 12/29 15:07
10F:→ tac0wu:如果你只是想做receiver 跟其他被控制物件的decouple 12/29 15:09
11F:→ tac0wu:就用 listenner 的作法即可 12/29 15:09
12F:推 tac0wu:基本上你的問題 通常就是用delegation 來解 12/29 15:26
13F:推 aimw0202:還蠻多的 可用database、sharepreference、static(注意me 12/29 17:36
14F:→ aimw0202:morey就好) Listener也可,receiver缺點是有時候收太慢 12/29 17:38
15F:→ QQ29:receiver只是我舉例,主要是想問非activity的class想存取ui, 12/29 23:55
16F:→ QQ29:該怎讓這class使用呢?例如asynctask之類的 12/29 23:55
17F:→ QQ29:傳listener這listener也是會有需要存取ui的需求,除非寫在inn 12/29 23:58
18F:→ QQ29:er class但總覺得都寫在inner 似乎不是個好design 12/29 23:58
19F:推 tac0wu:你會覺得onclick listener 很怪嗎 12/30 00:11
20F:推 tac0wu:你的class declare 一個inner public interface 12/30 00:15
21F:推 tac0wu:.在activity implement 後傳近去 12/30 00:16
22F:推 typepeter:還滿多Android系統自己的Class,都寫一堆inner class 12/30 00:18
23F:推 tac0wu:基本上android 用這種方式做decouple 很常見喔 12/30 00:18
24F:→ typepeter:如果覺得太怪的話 可以看看Google怎麼寫的:P 12/30 00:18
25F:推 gpc5566:inner class很正常 ANDROID都這樣 跟M$不一樣... 12/30 14:37
26F:推 gpc5566:不然你再用UI listener還要多弄一個class裝嗎 12/30 14:40
27F:→ QQ29:java有類似c# partial class寫法嗎,想分檔案寫,怕一個class 12/31 02:06
28F:→ QQ29:再一個檔案過大 12/31 02:06
29F:→ quare96:你可以看看roboGuice, 這課題我之前研究過 01/03 13:46







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP