如何刷新片段?

时间:2014-07-16 13:29:30

标签: android android-fragments

我有一个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();

    }

提前致谢。

3 个答案:

答案 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