0
私のSDカードからアンドロイドの画像をgridviewに追加しようとしています。私は、このメソッドを使用して画像を読んでいます:アンドロイドでgridviewに画像を動的に追加する
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
にアダプタを設定しています。これは、ライフサイクルごとに1回だけ呼び出されます。
今、グリッドビューに画像を動的に追加するためにコードを変更する必要があります。
この質問にお答えします。
ありがとうございます。ただし、onResumeの 'gridViewAdapter.notifyDataSetChanged();'が追加されました。 'public void onResume(){ super.onResume(); gridViewAdapter.notifyDataSetChanged(); Log.d(TAG、 "再開時にギャラリーの断片からこんにちは"); } ' – learner