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

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

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

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(9)
PHPzhong

1.同じメソッドを BaseActivity に抽象化します。

いいねを押す +0
Ty80

アクティビティ A に共有コードを記述すると、その共有コードを使用する必要があるアクティビティがアクティビティ A を継承します

いいねを押す +0
Ty80

Mvp モードを使用すると、論理制御層の同じ部分を Present 層に配置して管理できます。

いいねを押す +0
阿神

リーリー

いいねを押す +0
伊谢尔伦

この方法が何に使われるのか教えていただけますか? 戻り値は void に似ているため、conxt

を通じて何かを行う必要があります。
いいねを押す +0
Peter_Zhu

コードの同じ部分がインターフェイスと対応するロジックである場合、フラグメントを使用するだけです。なぜそれを渡す必要があるのですか? Context は通常、結合されすぎている特定のアクティビティにダウンコンバートするのではなく、Context メソッドを使用するためだけに渡されます。 コードの同じ部分が小さなコードである場合は、そのコードを BaseActivity に配置し、他のアクティビティにそれを継承させます。

いいねを押す +0
洪涛

まだ Java を始めていません。まず基礎を築きましょう

いいねを押す +0
黄舟

1. パブリック メソッドであり、実装される関数が同じ場合:
Activity の基本クラス、BaseActivity を作成し、サブクラスが呼び出すパブリック メソッドを作成します。
2.パブリック メソッドが実装されます。 機能は異なりますが、メソッド名は同じです。
基本クラス BaseActivity も作成され、抽象メソッドが記述されます。 具体的な実装はサブクラス
で完了します。 PS: を渡します。 context はアクティビティ内のオブジェクトを取得することはできません。少なくとも ((Activity)context)

と記述する必要があります。
いいねを押す +0
刘奇

抽象親クラスを作成します。そこに共有メソッドを置きます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート