2012-01-02 8 views
0

10個のアクティビティに対して約20個のクラスを持つネイティブアンドロイドアプリケーションがあります。アンドロイドでの関数の再利用

すべてのアクティビティで関数定義を再利用したいと考えています。私は下のバーを持っていて、このアクティビティをトリガする必要があります。 Java can notは複数の継承を持つので、どのようにしてこの機能をどこにコピーしたいのですか?

+0

Javaは "多重継承" のサポートを持っていた場合、どのようにこの問題を解決するためにそれを使用するのでしょうか? –

+2

@βнɛƨнǤʋяʋиɢ、明白な方法は、すべての必要な機能を持つアクティビティと別のクラスを拡張することです。 –

+0

@ user826788 AFAIK、Androidアプリでは、画面/表示ごとに1つのアクティビティ/クラスが必要です。したがって、10の活動を正当化することができます。画像のダウンロード、JSONの解析、Autofill extraのクラスを書く必要がありました。 – Jaseem

答えて

10

をクラスにしてそれをActivityから拡張し、そのメソッドをその内部に書き込みます。

となりましBasicActivity

+2

そして、あなたのコードを読み直すときに、より明確にするために、BasicActivityは抽象的でなければなりません。 – Raveline

+0

問題が解決しました。より良い選択肢はありますか? – Jaseem

+0

@ジャセムは細部を知らずに、言うことはできません。 –

1

別の方法から、アプリケーション内のすべてのActivityを拡張するには、あなたが必要としているすべての機能を持っていること、クラスを作成することです。あなたはそのようなことに対してシングルトンパターンを使うことができます。


例:

public final class SingletonClass{ 
    private SingletonClass(){} 

    private static class InstanceHolder{ 
     private static final SingletonClass instance=new SingletonClass(); 
    } 

    public static SingletonClass getInstance(){ 
     return InstanceHolder.instance; 
    } 

    /*your public non-static methods here*/ 
} 

そして:

SingletonClass singleton=SingletonClass.getInstance(); 
singleton.someMethod();  
関連する問題