ギャラリーからいくつかの画像を選択し、gridviewで表示したいと思います。私はFilepickerライブラリを使用しています。その作業しかし私が直面しているマイの問題は、選択後に画像がgridviewに表示されていないということです。私はあなたに私のコードを示します。私を助けてください。 は、この私の断片クラスandroidのgridviewで選択した画像を追加する方法
fabPhotosAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FilePickerBuilder.getInstance().setSelectedFiles(arrayList)
.setActivityTheme(R.style.Theme_AppCompat_Light).pickPhoto(getActivity());
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case FilePickerConst.REQUEST_CODE:
if (resultCode == RESULT_OK && data != null) {
arrayList = data.getStringArrayListExtra(FilePickerConst.KEY_SELECTED_PHOTOS);
PhotoFragmentModel model;
ArrayList<PhotoFragmentModel> list = new ArrayList<>();
try {
for (String path : arrayList) {
model = new PhotoFragmentModel();
model.setName(path.substring(path.lastIndexOf("/") + 1));
model.setUri(Uri.fromFile(new File(path)));
list.add(model);
}
gridPhotos.setAdapter(new PhotoFragmentAdapter(getActivity(), list));
Toast.makeText(getActivity(), "Total : " + String.valueOf(list.size()), Toast.LENGTH_SHORT).show();
} catch (Exception e) {
}
}
}
}
PhotoFragmentAdapter.java
public class PhotoFragmentAdapter extends BaseAdapter {
private Context context;
private ArrayList<PhotoFragmentModel> arrayList;
private LayoutInflater inflater;
private ImageView ivPhoto;
private TextView tvName;
public PhotoFragmentAdapter(Context context, ArrayList<PhotoFragmentModel> arrayList) {
this.context = context;
this.arrayList = arrayList;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return arrayList.size();
}
@Override
public Object getItem(int i) {
return arrayList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
view = inflater.inflate(R.layout.item_photo_fragment, null);
final PhotoFragmentModel model = (PhotoFragmentModel) this.getItem(i);
ivPhoto = (ImageView) view.findViewById(R.id.iv_item_photo);
tvName = (TextView) view.findViewById(R.id.tv_item_name);
Picasso.with(context).load(model.getUri()).fit().into(ivPhoto);
tvName.setText(model.getName());
return view;
}
}
選択が完璧に働いているが、選択した後、画像がGridViewの中に表示されていません。これが主な問題です。誰かが私を助けたり、私に別の図書館を案内したりすることができれば、私は彼に感謝します。
チェックのArrayListの項目を呼び出すことができます
で取得してくださいarrayListがnullでなく、arrayList.size()が0より大きい必要がある場合。また、checもしあなたがリストに追加しているファイルパスが有効で、ファイルシステムにイメージが存在するならばk。 –
私はすでにそれをチェックしました。それは正常に動作します。 –