Привет, я пытаюсь вызвать эту функцию loadFiles()
, которая находится в fragmentB
, и я хочу позвонить ей из FragmentA
, поэтому я могу обновить свои GridView
для своих изображений и видео.метод вызова из фрагмента в фрагмент (refresh adapter)
Я получаю эту ошибку из того же метода
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);
попробуйте использовать интерфейс – penguin
Попробуйте реализовать loadFiles() на уровне активности вместо любого фрагмента и использовать его на любом фрагменте. –