我有一个PhotosFragment类,它扩展了Fragment。在那个课程中,我有一个图像的网格视图。当我删除图像时,它将成功删除,但片段无法刷新。那么如何刷新片段?
gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int position, long id) {
imageId = imageArry.get(position).getID();
deletePhoto(imageId);
return true;
}
});
//删除照片的方法
protected void deletePhoto(int id) {
final int t_id = id;
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
alert.setTitle("Delete");
alert.setMessage("Do you want to delete this image ?");
alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
db.deleteContact(new Contact(t_id));
//HERE I want to REFRESH THE FRAGMENT
}
});
alert.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alert.show();
}
提前致谢。
答案 0 :(得分:1)
您需要从notifyDataSetChanged
的适配器调用GridView
方法才能看到更改
答案 1 :(得分:0)
尝试使布局视图无效
rootView.findViewById(R.id.your_layout_id).invalidate();
答案 2 :(得分:0)
我认为你不应该刷新所有片段。您可以执行类似imageView.setVisibility(View.GONE)
之类的操作,或者更好地从gridView的适配器中删除项目:
adapter.remove(object);
adapter.notifyDataSetChanged();
如需更多信息,建议您参阅official documentation