我在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;
}
}
我正在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(...)}
...
}
}
答案 0 :(得分:0)
尝试使用getActivity()。getBaseContext();