Java android新手:为什么类必须扩展活动才能传递其上下文
有一个名为Utils的类:Java android新手:为什么类必须扩展活动才能传递其上下文,java,android,Java,Android,有一个名为Utils的类: public class Utils{ } 还有一个类叫做HotOrNot。它包含如下构造函数: public HotOrNot(Context c){ ourContext =c ;} public class Utils extends Activity { } 在utils类中,我想启动HotOrNot的一个实例,因此我键入以下内容: HotOrNot info = new HotOrNot(this); 但是,此代码给了我以下错误: 构造函数Ho
public class Utils{ }
还有一个类叫做HotOrNot。它包含如下构造函数:
public HotOrNot(Context c){ ourContext =c ;}
public class Utils extends Activity { }
在utils类中,我想启动HotOrNot的一个实例,因此我键入以下内容:
HotOrNot info = new HotOrNot(this);
但是,此代码给了我以下错误:
构造函数HotOrNot(Utils)未定义
我通过如下扩展Utils类解决了此错误:
public HotOrNot(Context c){ ourContext =c ;}
public class Utils extends Activity { }
为什么Utils必须扩展活动才能传递其上下文HotOrNot的构造函数?HotOrNot的构造函数需要一个
上下文(通常这是您的主要活动)。
因此,仅仅在Util类中传递这个
是不起作用的(因为它不是上下文
的子类)
不要在你的Utils类中扩展活动
,你应该以某种方式将你的活动
的引用传递给Utils,这样你就可以在那里使用它了。因为活动扩展了类上下文,而Utils没有。你的问题没有多大意义。假设霍托诺特是一辆汽车,它的制造者需要一个司机。你不能把苹果递给汽车的制造者,因为苹果不是司机。当然,你可以让苹果扩展驱动程序,假装它是一个驱动程序,并能够将它传递给汽车制造商。但尽管它可以编译,但我怀疑它是否有用。您可能应该学习Java教程。仅扩展Activity
即可解决编译错误,但它不会起作用。您可以将活动上下文传递给utils类的构造函数注意不要保留对上下文活动的长期引用(对活动的引用应与活动本身具有相同的生命周期)如何按照您的建议传递对活动的引用?@lisagrennew-Utils(ActivityName.this)
then-Utils-classCOntext-mCOntext
然后公共UTIL(上下文){mCOntext=Context;}
@lisagreen现在将mCOntext用作新的HotOrNot(mCOntext);