我很难理解上下文的东西是如何工作的。我现在真的不需要这个,但我相信我很快就会需要这个......
例子
我制作了一个名为的应用程序ave
和一个名为的库(本身就是一个应用程序)xvf
,每个都有几个活动。他们中的大多数人通过 Toast 提供信息,所以我到处都有相同的方法:
public void info(String txt) {
Toast.makeText(getApplicationContext(), txt, Toast.LENGTH_LONG).show();
}
现在我想将该方法作为一个类放入库中,并从应用程序类和库类的任何地方调用它。我不想传递上下文,例如info.show(context, String)
,我希望类info
在调用上下文时推断上下文的位置。
所以我做了一个名为info
:
package com.floritfoto.apps.xvf;
import android.app.Activity;
import android.content.Context;
import android.widget.Toast;
public class info extends Activity{
private Context context;
public info() {
super();
context = (Context)getApplicationContext();
}
public void show(String txt) {
Toast.makeText(context, txt, Toast.LENGTH_LONG).show();
}
}
然后,在调用活动中,我只创建一个 info 实例,然后执行info.show(String)
. 这行得通。
extend Activity
问题是,对于我来说,仅仅获得上下文似乎太昂贵了......
哪种是做我想做的事情的正确方法?做一info(String)
件事会更好……记住,你不能做一个构造函数info(Context, String)
,那是作弊。