0

我的文件assets夹中有一个文件,我想在我命名的类中访问它StorageManager(只是一个普通类,不扩展任何东西):

public class StorageManager {
    private Context context;

    public StorageManager(Context context){
        this.context=context;
    }

    public String readFileAsString(String filePath) throws java.io.IOException {
        AssetManager am = context.getAssets();
        InputStream is = am.open(filePath);
        String results = "";
        int data = is.read();
        while (data !=-1) {
            results += (char)data;
            data = is.read();
        }
        is.close();
        return results;
    }
}

我在 a 中创建这个类的一个实例并作为上下文ListFragment传递。getActivity()

readFileAsString但是,当我用有效的方式拨打电话时,filePath我得到了一条NullPointerException线路:

AssetManager am = context.getAssets();

我假设这意味着上下文为空。但为什么?我该如何解决?


编辑

它是如何称呼的:

public class MyListFragment extends ListFragment {
    public View onCreateView(LayoutInflater inflater, .....etc) {
        ...
        StorageManager storage = new StorageManager(getActivity());
        try{
            String filetext = readFileAsString("file");
        }catch(...)}
        ...
    }

}
4

1 回答 1

0

尝试使用 getActivity().getBaseContext();

于 2013-08-28T14:57:16.450 回答