android-studio - Android 作用域传递问题?
PHP中文网
PHP中文网 2017-04-17 17:44:33
0
9
416

我在写App的时候好多Activity都在做同一个事情,就是操作各个Activity的界面的同一个部分。
所以我希望把这些做同一个事情的相同代码拿出来做一个类的静态方法,下次需要做这个事情就直接调用,不要重复写同样的代码。
于是我这样做的:

就这样把Context传递过去了,但是获取不到那个Context的变量和方法,这个应该怎么实现啊?
难道我必须要在几个Activity写出相同的代码?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(9)
PHPzhong

1.把相同的方法抽像到BaseActivity中。

Ty80

你可以在Activity A中寫共用程式碼,然後需要用到共同程式碼的Activity繼承Activity A

Ty80

可以採用Mvp模式,將邏輯控制層相同的部分放到Preserent層來管理。

阿神

雷雷

伊谢尔伦

能告訴我這個方法是做什麼用的嗎? 因為你的返回類似是void,所以肯定是要透過contxt做些什麼事情

Peter_Zhu

如果你的相同部分的程式碼是介面和對應的邏輯用Fragment就好了,為什麼要傳遞? 傳遞Context一般只為了使用Context的方法,而不是向下轉成具體的Activity,這樣反而過於耦合。 如果相同部分的程式碼是一小段程式碼,那就把這些程式碼放到一個BaseActivity裡面,然後讓其他Activity繼承它。

洪涛

你的java還沒入門,先打好基礎

黄舟

1.如果是公用方法而且實現的功能是相同的:
寫一個Activity的基類BaseActivity將公用方法寫在基類中提供給子類調用
2.若公用方法實現的功能不同,方法名相同:
同樣是創建基類BaseActivity並寫一個抽象方法,具體實現在子類中完成
PS:傳遞context肯定是拿不到Activity裡面的對象,至少要寫((Activity)context)

刘奇

寫一個抽象父類別。將共用方法放進去。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!