色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

java - android代碼重構(gòu):如何把app設(shè)置里的頭像UI做成通用的?

瀏覽:102日期:2024-02-09 11:23:59

問題描述

公司幾款app設(shè)置界面都有用戶頭像,功能一樣:網(wǎng)絡(luò)請求獲取頭像更新,點擊頭像彈出:拍照or相冊,選擇照片更新頭像。

現(xiàn)在都是寫在各自項目中,大量重復(fù)代碼,現(xiàn)在需要重構(gòu),老大說把這個View寫成通用控件(不是整個界面),但是點擊View進入拍照或者相冊,選擇返回照片是在Activity的onActivityResult里處理,我在View里面無法重寫這個方法啊 怎么弄???

問題解答

回答1:

這個問題當然是怎么方便怎么來, 但是要考慮App目前的框架:

按樓上說的用回調(diào).但注意因為回調(diào)放在了被靜態(tài)變量引用, 一般回調(diào)是匿名內(nèi)部類, 可能會導(dǎo)致內(nèi)存泄漏.

用事件總線. 也是實現(xiàn)中間層, 把結(jié)果通過事件總線傳過來.

推薦: 既然是重構(gòu), 可以考慮讓所有的控件都擁有獲取onActivityResult結(jié)果的功能了. 定義一個接口, interface onActivityResult {

boolean onResult();

}需要監(jiān)聽回調(diào)的自定義控件實現(xiàn)該接口. 在BaseActivity里面, 記錄這些控件, 當有結(jié)果返回時傳給這些控件:class BaseActivity {

List<onActivityResult> resultViewList = new ArrayList();void onCreate() { ResultView view = ...; resultViewList.add(view);}onActivityResult() { for (onActivityResult view : resultViewList) {boolean ret = view.onResult();if (ret) { break;} } }

}這樣就完全解決了控件需要拿到Activity結(jié)果的問題了.

以上為大概代碼, 實際上還有考慮: requestCode 重復(fù)問題, 要保存所有的View.

回答2:

通過listener的形式處理就可以了。

回答3:

上面的說的不錯 定義一個接口 用接口回調(diào)的方式來做 其他的通用的view 實現(xiàn)這個接口給就可以了

回答4:

我們的做法是把拍照和相冊寫成一個Module,然后給設(shè)置頭像的組件添加點擊事件,點擊跳轉(zhuǎn)到處理的界面,然后返回。Module中不包含那個設(shè)置組件,由Module的使用者自己設(shè)置。還有一種做法就是樓上所說的通過事件監(jiān)聽,選擇相冊圖片或者拍照確定圖片后,觸發(fā)這個listener。我建議你問問你老大,是否確定把那個入口View也寫在Module中

回答5:

搭建一個本地maven倉庫,把這個控件,彈窗,跳轉(zhuǎn)功能封裝好。然后直接上傳到本地maven倉庫,之后再通過Gradle依賴到項目里去本地maven倉庫搭建,配置Gradle,上傳自己的library到倉庫內(nèi)

一般像一些基礎(chǔ)功能的庫都可以這么做,一個人維護即可

回答6:

使用 onActivityResult 沒問題呀,嗶哩嗶哩就是這樣處理的 boxing;不想讓調(diào)用者處理 onActivityResult,可以寫個中間 Activity 處理完 onActivityResult,將結(jié)果通過回調(diào)傳給調(diào)用者;或者自定義一個相機回答7:

這類涉及到其他界面的邏輯我一般會寫個獨立的module,調(diào)用的時候使用接口,實現(xiàn)層用中間activity完成圖片的選取/處理,最后通過回調(diào)返回。這些東西你甚至都不用自己寫,GitHub上現(xiàn)成的輪子大把,隨便找一個ImagePicker用就行了。

回答8:

謝謝各位,這位回答基本是我的意思。 我的問題沒說清楚,我重構(gòu)不是想要打造通用頭像控件,我要的是:這個頭像view放到業(yè)務(wù)Activity的布局中 ,然后調(diào)用者其他什么都不需要做了。什么網(wǎng)絡(luò)請求更新頭像 上傳頭像 選照片...全部封裝好,而不是回調(diào)給他自己處理,因為我們公司這幾款app的 頭像相關(guān)接口是通用的

標簽: java
相關(guān)文章:
主站蜘蛛池模板: 色哟哟国产成人精品 | 久久久免费视频观看 | 中文在线最新版天堂 | 国产一级在线观看 | 视频二区国产 | 中文字幕二区 | 久99re视频9在线观看 | 精品国产自在在线在线观看 | 免费国产高清精品一区在线 | 呦女亚洲一区精品 | www.黄色片| 台湾黄三级高清在线观看播放 | 精品亚洲永久免费精品 | 亚洲品质自拍 | 欧美国产一区二区三区 | 国产精品亚洲欧美 | 99精品一区二区三区 | 老司机亚洲精品 | 欧美一级α片毛片免费观看 | 日本在线毛片视频免费看 | 亚洲成人手机在线观看 | aaaaaaa一级毛片 | 一级a毛片免费观看 | 精品在线小视频 | 久久久久久久国产 | 国产成人18黄网站免费网站 | 国产一区二区三区亚洲欧美 | 一级毛片免费观看不卡视频 | 成人亚洲欧美综合 | 国产精品自在自线亚洲 | 99久久国产综合精品网成人影院 | 在线观看亚洲视频 | 日韩 国产 欧美视频一区二区三区 | 成人欧美一区二区三区视频xxx | 国产成人v爽在线免播放观看 | 91精品国产9l久久久久 | 亚洲欧美综合久久 | 一个人看的www日本高清视频 | 三级网站视频在线观看 | 曰本aaaaa毛片午夜网站 | 免费观看成人久久网免费观看 |