简体   繁体   English

刷新AlertDialog上的RecyclerView关闭

[英]refresh RecyclerView on AlertDialog close

I have a list of notes, there is a dialog thats opened to add a new note, and when the dialog is closed, it is saved to the database, how do i get the recyclerview to refresh once the dialog has been closed to show the new note added. 我有一个注释列表,有一个对话框打开以添加新注释,当对话框关闭时,它会保存到数据库中,如何在对话框关闭后刷新recyclelerview以显示新笔记补充说。

recyclerView = (RecyclerView)findViewById(R.id.assignment_notes_recyclerview);
        layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setHasFixedSize(true);
        UserDbHelper userDbHelper = new UserDbHelper(this);
        SQLiteDatabase sqLiteDatabase = userDbHelper.getReadableDatabase();

        Cursor cursor = userDbHelper.getAssignmentNotes( selected, sqLiteDatabase);

        cursor.moveToFirst();
        do {
            NoteDataProvider noteDataProvider = new NoteDataProvider(cursor.getString(0), cursor.getString(2), cursor.getString(3));
            arrayList.add(noteDataProvider);
        }while(cursor.moveToNext());
        userDbHelper.close();



        adapter = new NoteDataAdapter(arrayList);
        recyclerView.setAdapter(adapter);

        assignmentAddNote.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {


                AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
                LayoutInflater inflater = getLayoutInflater();
                final View dialogView = inflater.inflate(R.layout.layout_assignment_note_dialog, null);
                dialogBuilder.setView(dialogView);

                final EditText note = (EditText) dialogView.findViewById(R.id.edit1);

                dialogBuilder.setTitle("Assignment Notes");
                dialogBuilder.setMessage("Enter te note below");
                dialogBuilder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        //save button has been pressed
                        String done = "No";
                        String content = note.getText().toString();
                        userDbHelper1 = new UserDbHelper(context);
                        sqLiteDatabase1 = userDbHelper1.getReadableDatabase();
                        userDbHelper1.addAssignmentNote(selected, content, done, sqLiteDatabase1);


                    }
                });
                dialogBuilder.setNegativeButton("Discard", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        //pass
                    }
                });
                AlertDialog b = dialogBuilder.create();
                b.show();
            }
        });

To Refresh RecyclerView , Add the new element to the ArrayList which is Being used by the RecyclerViewAdapter class, which in your case is arrayList . 要刷新RecyclerView ,将新元素添加到RecyclerViewAdapter类正在使用的ArrayList ,在您的情况下是ArrayList

arrayList.add(<Your item here >);

Then refresh with, 然后刷新,

adapter.notifyDataSetChanged();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM