Search code examples
androidcustomdialog

How to update my Listview in parent fragment when i dismiss from custom dialog


I have a listview setonlongclicklistner to open a custom dialog showing delete and cancel.

lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {


            Cursor c = (Cursor) sp.getItem(position);
            int c_id = c.getInt(0);
            String userid = c.getString(1) + c_id;

            frag = new UserListDeleteFragment();

            Bundle bundle = new Bundle();
            bundle.putString("id", "" + c_id);
            bundle.putString("userid", userid);
            frag.setArguments(bundle);
            frag.setCancelable(false);

            frag.show(Lenderlist.this.getSupportFragmentManager(), "f");

            return true;
        }
    }); 

Below is the code for custom dialog which will delete the selected list item

 public class UserListDeleteFragment extends DialogFragment {

    TextView tv1,tv2;
    Dialog d;
    String user_id,ids;
    MyDatabase m;


    public UserListDeleteFragment() {
        // Required empty public constructor
    }


    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        d=null;
        m=new MyDatabase(getActivity());

        AlertDialog.Builder ab=new AlertDialog.Builder(getActivity());

        View v=getActivity().getLayoutInflater().inflate(R.layout.fragment_user_list_delete, null);

        tv1= (TextView) v.findViewById(R.id.textviewbutton1);
        tv2= (TextView) v.findViewById(R.id.textviewbutton2);

        Bundle b=getArguments();
        user_id = getArguments().getString("userid");
        ids=getArguments().getString("id");


        tv1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                boolean b;
                m.open();
                b=m.deleteTitle(ids);
                m.close();
                m.open();
                m.deletesublist_user(user_id);
                m.close();

                if(b==true)
                {
                    Toast.makeText(getActivity(),"Deleted",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    Toast.makeText(getActivity(),"Not Deleted",Toast.LENGTH_SHORT).show();
                }


                d.dismiss();

            }
        });

        tv2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                d.dismiss();
            }
        });


        ab.setView(v);
        d=ab.create();

        return d;
    }
    }

i want to update my listview from first fragment when the dialog dismiss.Any one have solution for this. am not good in android. also sorry for bad english. thanks in advance.


Solution

  • Override the onDismiss method for your UserListDeleteFragment to call notifyDataSetChanged of your list's adapter