【发布时间】:2015-06-16 13:49:55
【问题描述】:
我正在我的Fragment Activity 中实现一个水平图库,但我无法获取我的图像,因此返回了一个NullPointerException:
LinearLayout myGallery;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
myGallery = (LinearLayout) getActivity().findViewById(R.id.mygallery);
String targetPath = "assets/";
Toast.makeText(getActivity(), targetPath, Toast.LENGTH_LONG).show();
File targetDirector = new File(targetPath);
File[] files = targetDirector.listFiles();
for (File file : files){ //NullPointerException here
myGallery.addView(insertPhoto(file.getAbsolutePath()));
}
}
这是我的图片的路径:
NullPointerException 指向 for 循环 for (File file ; files){ ...
访问我的文件夹的正确方法是什么?
【问题讨论】:
-
这不是 Android 可绘制对象的工作方式。使用
assets或raw,而不是drawable-gallery。 -
资产文件夹在哪里?
-
好的,谢谢,我已经按照您的观察,但它仍然会产生
NullPointerException -
我的 Logcat:pastie.org/private/bj7brxb8o61yutcex4mw
-
您不能将 File 和 FileInputStream 类用于资产中的“文件”。您必须使用资产管理器来打开“文件”的输入流。谷歌打开或复制资产中的文件。您也可以将图像留在可绘制对象中。但是,如果您想列出它们,资产就是要走的路。
标签: android gallery android-imageview android-gallery