【发布时间】:2015-05-08 06:16:46
【问题描述】:
您好,我正在尝试调用位于fragmentB 中的此函数loadFiles(),并且我想从FragmentA 调用它,因此我可以为我的图像和视频刷新我的GridView。
我从同样的方法得到这个错误
FATAL EXCEPTION: main
java.lang.NullPointerException
我在FragmentB中的方法:
public void loadFiles(){
gridView = (GridView) this.v.findViewById(R.id.grid);
File f = new File(home);
if (f.exists()){
String [] media = f.list();
ArrayList<String> files = new ArrayList<>();
for (int i=0; i<media.length;i++){
if (media[i].endsWith(".jpg")||
media[i].endsWith(".png")||
media[i].endsWith(".JPEG")||
media[i].endsWith(".3gp")||
media[i].endsWith(".mp4")||
media[i].endsWith(".mov")){
files.add(media[i]);
}
if (i==media.length-1){
GridAdapter adapter = new GridAdapter(this.v.getContext(), files, gridView);
adapter.notifyDataSetChanged();
gridView.setAdapter(adapter);
}
}
}
}
我怎么称呼它FragmentA:
FragmentB b = new FragmentB();
b.loadFiles();
我认为问题是因为这条线,但我已经尝试了一切,但没有运气:(
GridAdapter adapter = new GridAdapter(this.v.getContext(), files, gridView);
【问题讨论】:
-
尝试在 Activity 级别实现 loadFiles() 而不是任何 Fragment 并在任何 Fragment 上使用它。