0

我试图从一个类继承一个函数,但它返回NullPointerException. 有人可以帮忙吗?

这是我尝试继承的功能Main.java。该功能在Main.java.

public void readData() {
    String readString = "";

    try {
        FileInputStream fIn = openFileInput("user.txt");
        InputStreamReader isr = new InputStreamReader(fIn);
        BufferedReader buffreader = new BufferedReader(isr);

        readString = buffreader.readLine();
        isr.close();

    } catch (IOException ioe) {
        ioe.printStackTrace();
    }

    telephonyManager.listen(myPhoneStateListener,
                            PhoneStateListener.LISTEN_CALL_STATE);
}

这是我另一堂课的编码:

Main main =new Main();
main.readData();

错误日志:

04-16 02:58:23.812: E/AndroidRuntime(8125): java.lang.NullPointerException
04-16 02:58:23.812: E/AndroidRuntime(8125):   at android.content.ContextWrapper.openFileInput(ContextWrapper.java:167)
04-16 02:58:23.812: E/AndroidRuntime(8125):   at com.test.Main.readData(Main.java:176)
4

1 回答 1

1

问题是openFileInput()需要一个Context. 您需要在您的类中创建一个构造函数,该构造函数contextparam.

public void ClassWithFunction
{
   Context mContext;
    public ClassWithFunction (Context context)
    {
         mContext = context
    }
}

然后通过你的Context

Main main =new Main(this);
main.readData();

然后在调用此函数时使用它

FileInputStream fIn = mContext.openFileInput("user.txt");  //mContext is context sent from Activity

注意Context如果您在此类中有任何其他需要它的方法, 您将需要使用它

这是我关于同一件事的答案

于 2013-04-15T19:15:30.787 回答