【发布时间】:2013-08-28 11:20:49
【问题描述】:
我在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() 作为上下文传递。
但是,当我使用有效的filePath 拨打readFileAsString 时,我会得到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(...)}
...
}
}
【问题讨论】:
-
是的 context 为 null 你如何传递构造函数以及从哪里传递?
-
显示您的有效文件路径。
-
我在 ViewPager 中有一个 ListFragment,我调用: StorageManager storage = new StorageManager(getActivity());从扩展 ListFragment 的类中
-
调用 this.getAssets();可能是工作
-
什么是 null?
标签: java android file-io assets android-context