안녕하세요이 함수를 호출하려고 loadFiles()
에 위치한 fragmentB
난에서 호출 할 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);
다음과 같이 할 것을 제안합니다.
public class Utils{
public static ArrayList<String> loadFiles(){
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]);
}
}
return files;
}
}
}
이제 FragmentA 및 FragmentB 등에서 할 수 있습니다.
gridView = (GridView) this.v.findViewById(R.id.grid);
GridAdapter adapter = new GridAdapter(this.v.getContext(), Utils.loadFiles(), gridView);
gridView.setAdapter(adapter);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다