私は、アプリ内のさまざまなアクティビティで使用できる一連のメソッドを作成しようとしています。だから私は、以下のようにクラスUtil.java
にこれらのメソッドを置くことにしました:アンドロイドのアクティビティを入力してください
class Util{
MainActivity activity;
//constructor
public Util(MainActivity activity){
this.activity=activity;
}
//other methods are here
}
MainActivity
からUtil
のインスタンスを作成しながら、今、上記のコードは正常に動作します。 Util
のインスタンスを別のアクティビティから作成する場合は、NewActivity
と入力します。これは、引数としてNewActivity
を受け付ける新しいコンストラクタを追加する必要があります。
質問: 以下のように、Utilクラス内に複数のコンストラクタを避ける方法はありますか?
class Util{
Activity activity; //can hold instance of any activity
//constructor
public Util(activity activity){
this.activity=activity;
}
//other methods are here
}
上記のコードは、現在のアクティビティのActionBarに以下のようにアクセスしたい場合には役に立ちません。私は何をしようとしている要するに
activity.getSupportActionBar() //would throw an error
あらゆる活動(MainActivity
またはNewActivity
)を保持し、私に現在割り当てられている活動のメンバーへのフルアクセスを与えることができ、単一の変数activity
を作成することです。
複数のコンストラクタは問題ではありません。それは複数のインスタンスです。このクラスをどのように使用するのかを[mcve]に示してください。これは、貧弱なデザインのようです。 –
アクティビティを拡張する抽象クラスを作成し、他のすべてのアクティビティクラスを拡張する必要があるようです。 –
良いアイデアですか?アンドロイドでのアクティビティの抽象クラスを作成するには?それがGoogleだったら、米国のためにそれをしただろう。 –