搜尋

首頁  >  問答  >  主體

android-studio - Android 作用域传递问题?

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

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

PHP中文网PHP中文网2807 天前448

全部回覆(9)我來回復

  • PHPz

    PHPz2017-04-17 17:46:33

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 17:46:33

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 17:46:33

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

    回覆
    0
  • 阿神

    阿神2017-04-17 17:46:33

    雷雷

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:46:33

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

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:46:33

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 17:46:33

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

    回覆
    0
  • 黄舟

    黄舟2017-04-17 17:46:33

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

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 17:46:33

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

    回覆
    0
  • 取消回覆