我在写App的时候好多Activity都在做同一个事情,就是操作各个Activity的界面的同一个部分。
所以我希望把这些做同一个事情的相同代码拿出来做一个类的静态方法,下次需要做这个事情就直接调用,不要重复写同样的代码。
于是我这样做的:
就这样把Context传递过去了,但是获取不到那个Context的变量和方法,这个应该怎么实现啊?
难道我必须要在几个Activity写出相同的代码?
天蓬老师2017-04-17 17:46:33
如果你的相同部分的程式碼是介面和對應的邏輯用Fragment就好了,為什麼要傳遞? 傳遞Context一般只為了使用Context的方法,而不是向下轉成具體的Activity,這樣反而過於耦合。 如果相同部分的程式碼是一小段程式碼,那就把這些程式碼放到一個BaseActivity裡面,然後讓其他Activity繼承它。
黄舟2017-04-17 17:46:33
1.如果是公用方法而且實現的功能是相同的:
寫一個Activity的基類BaseActivity將公用方法寫在基類中提供給子類調用
2.若公用方法實現的功能不同,方法名相同:
同樣是創建基類BaseActivity並寫一個抽象方法,具體實現在子類中完成
PS:傳遞context肯定是拿不到Activity裡面的對象,至少要寫((Activity)context)