Я пытаюсь добавить изображения с моей SD-карты в android к gridview. Я читаю изображения с помощью этого метода:Динамическое добавление изображений в gridview в 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 ");
}
}
Теперь я передаю выше значений в GridView:
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;
}
Все работает отлично. Но проблема заключается в том, что новые изображения добавляются в папку AppsCameraSpy
, мой вид сетки не показывает их.
Поскольку я устанавливаю адаптер в onCreateView
, который вызывается только один раз, в соответствии с жизненным циклом.
Теперь, как мне изменить свой код, чтобы динамически добавлять изображения в мое gridview.
Пожалуйста, помогите мне ответить на этот вопрос.
Благодарим за ответ. Но добавление: 'gridViewAdapter.notifyDataSetChanged();' in onResume сработало. 'Public void onResume() { super.onResume(); gridViewAdapter.notifyDataSetChanged(); Log.d (TAG, «Привет из фрагмента галереи в резюме»); } ' – learner