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

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

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

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(9)
PHPzhong

1. Abstrak kaedah yang sama ke dalam BaseActivity.

Ty80

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

Ty80

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

阿神
if(c instanceof MainActivity){
    ((MainActivity) c).colorfulPanelTimerTask = new TimerTask(){
        ...
    }
}
伊谢尔伦

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

Peter_Zhu

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.

洪涛

Anda belum mula menggunakan Java lagi, letak asasnya dahulu

黄舟

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)

刘奇

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan