将Context从主Activity传递到另一个类

时间:2012-08-27 13:57:51

标签: android android-context

这可能是错误的做法,所以请告诉我是否是这种情况:

我正在尝试在另一个类中使用getFileStreamPath(根据我的理解派生自Context),将一些代码与主活动类分开。我这样做是通过将主活动的上下文传递给另一个类,并使用它来调用它的方法。

在我的主要活动课程中:

LocalStorage lc = new LocalStorage(this);

然后,在另一个班级:

public class LocalStorage {
    Context ctx;

    public LocalStorage (Context c) {
        c = ctx;
        File lfile = ctx.getFileStreamPath("Activity.log");

    ....

但显然我遗漏了一些东西,因为在LocalStorage类中传递的上下文上运行getFileStreamPath会导致NullPointerException。

4 个答案:

答案 0 :(得分:10)

你的变量倒退了。

c = ctx;

应该是

ctx = c;

您将未初始化的Context ctx分配给传入的Context c,因此它始终为空。

答案 1 :(得分:1)

你没有写错字吗?

public LocalStorage (Context c) {
    ctx = c;
    ...

答案 2 :(得分:1)

c = ctx ???

Context ctx;

public LocalStorage (Context c) {
    c = ctx;

答案 3 :(得分:0)

很难知道代码中的错误是什么,我们错过了信息。但看起来你正在以正确的方式传递上下文。所以问题就在于此。