Ich versuche, Bilder von meiner SD-Karte in android Gridview hinzuzufügen. Ich lese Bilder mit dieser Methode:Dynamisch Hinzufügen von Bildern zur Gridview in Android
public void getImages()
{
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "AppsCameraSpy");
if(mediaStorageDir.exists())
{
String[] strings = mediaStorageDir.list();
imageTitles = new ArrayList<String>(Arrays.asList(strings));
Log.d(TAG, "the files are: " + imageTitles);
}
try
{
for(File file : mediaStorageDir.listFiles())
{
files.add(file);
images.add(BitmapDrawable.createFromPath(file.getAbsolutePath()));
}
}
catch (Exception e)
{
e.printStackTrace();
Log.d(TAG,"Got some exceptoin ");
}
}
Nun, ich über Werte an die gridview bin vorbei:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_gallery, container, false);
gridView = (GridView)view.findViewById(R.id.gridView);
Log.d(TAG,"I am gallery");
getImages();
gridView.setAdapter(new GridViewAdapter(getActivity(),images,imageTitles,files));
return view;
}
Alles funktioniert gut. Aber das Problem ist, wenn neue Bilder zum Ordner AppsCameraSpy
hinzugefügt werden, zeigt meine Rasteransicht sie nicht an.
Da ich Adapter in onCreateView
setze, die nur einmal aufgerufen wird, je nach dem Lebenszyklus.
Nun, wie soll ich meinen Code ändern, um Bilder dynamisch zu meinem Gridview hinzuzufügen.
Bitte helfen Sie mir, diese Frage zu beantworten.
Vielen Dank für die Antwort. Aber hinzufügen: 'gridViewAdapter.notifyDataSetChanged();' in onResume arbeitete.public void onResume() { super.onResume(); gridViewAdapter.notifyDataSetChanged(); Log.d (TAG, "Hallo aus Galerie Fragment im Lebenslauf"); } ' – learner