cari

Rumah  >  Soal Jawab  >  teks badan

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

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

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

PHP中文网PHP中文网2826 hari yang lalu456

membalas semua(9)saya akan balas

  • PHPz

    PHPz2017-04-17 17:46:33

    1. Abstrak kaedah yang sama ke dalam BaseActivity.

    balas
    0
  • PHP中文网

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

    Anda boleh menulis kod kongsi dalam Aktiviti A, dan kemudian Aktiviti yang perlu menggunakan kod kongsi mewarisi Aktiviti A

    balas
    0
  • PHP中文网

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

    Anda boleh menggunakan mod Mvp untuk meletakkan bahagian yang sama pada lapisan kawalan logik ke dalam lapisan Present untuk pengurusan.

    balas
    0
  • 阿神

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

    if(c instanceof MainActivity){
        ((MainActivity) c).colorfulPanelTimerTask = new TimerTask(){
            ...
        }
    }

    balas
    0
  • 伊谢尔伦

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

    Boleh beritahu saya untuk apa kaedah ini digunakan? Kerana pemulangan anda serupa dengan batal, anda mesti melakukan sesuatu melalui contxt

    balas
    0
  • 天蓬老师

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

    Jika bahagian yang sama pada kod anda ialah antara muka dan logik yang sepadan, hanya gunakan Fragment Mengapa anda perlu menghantarnya? Konteks biasanya diluluskan hanya untuk menggunakan kaedah Konteks, dan bukannya menukar turun kepada Aktiviti tertentu, yang terlalu berganding. Jika bahagian kod yang sama ialah sekeping kod kecil, letakkan kod dalam BaseActivity dan biarkan aktiviti lain mewarisinya.

    balas
    0
  • PHP中文网

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

    Anda belum mula menggunakan Java lagi, letak asasnya dahulu

    balas
    0
  • 黄舟

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

    1. Jika ia adalah kaedah awam dan fungsi yang dilaksanakan adalah sama:
    Tulis kelas asas Aktiviti, BaseActivity, dan tulis kaedah awam dalam kelas asas untuk subkelas memanggil
    2 kaedah awam dilaksanakan Fungsi yang berbeza, nama kaedah yang sama:
    sama Kaedah yang sama adalah untuk mencipta kelas asas BaseActivity dan menulis kaedah abstrak Pelaksanaan khusus diselesaikan dalam subkelas
    PS: Anda pasti tidak akan dapat mendapatkan objek dalam Aktiviti apabila lulus konteks tulis ((Aktiviti)konteks)

    balas
    0
  • 怪我咯

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

    Tulis kelas induk abstrak. Letakkan kaedah yang dikongsi di sana.

    balas
    0
  • Batalbalas