-1

Utils というクラスがあります。

public class Utils{  }

HotOrNot という別のクラスがあります。次のようなコンストラクタが含まれています。

public HotOrNot(Context c){ ourContext =c ;}

utils クラスで、HotOrNot のインスタンスを開始したいので、次のように入力します。

HotOrNot info = new HotOrNot(this);

しかし、このコードでは次のエラーが発生します。

コンストラクター HotOrNot(Utils) は未定義です

次のように Utils クラスを拡張することで、このエラーを解決しました。

public class Utils extends Activity {   }

コンテキスト HotOrNot のコンストラクターを渡すために Utils がアクティビティを拡張する必要があるのはなぜですか?

4

1 に答える 1

1

のコンストラクターは a をHotOrNot期待しますContext(通常、これが主なアクティビティになります)。したがってthis、Util クラスを渡すだけでは機能しません (これは のサブクラスではないためですContext)。Utils クラスで拡張Activityする代わりに、何らかの方法で Utils への参照を渡して、Activityそこで使用できるようにする必要があります。

于 2013-10-30T11:57:28.533 に答える