簡體   English   中英

從DialogFragment更新活動的ViewPager內的片段RecyclerView的數據

[英]Update Data Of RecyclerView Of Fragment Inside ViewPager Of Activity From DialogFragment

我在fragment有一個recyclerview ,該片段在視圖分頁器內,而視圖分頁器顯然處於活動狀態。 我已經DialogFragment從那里我添加數據的一些EditText上SQLite 在SQLite中添加數據后,FAB內部活動將打開Dialogfragment對話框。如何在recyclerview中更新數據。

(對話框片段)AddNotesFragment.java

 toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
        public boolean onMenuItemClick(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.save_note: {
                    if (checkForInput(mNoteEditText.getText().toString(),mNoteTitleEditText.getText().toString())) {
                        Note note = new Note(0,mNoteTitleEditText.getText().toString(),mNoteEditText.getText().toString(),null);
                         createNote(note);
                         mListener.onComplete(note);
                         dismiss();
                    }
                }
                break;
            }
            return true;
        }
    });



 private long createNote(Note note) {
    // inserting note in db and getting
    // newly inserted note id
    SQLiteHelper db = new SQLiteHelper(getContext());
    return db.insertNote(note);
}

(帶有RecylerView的片段)NotesFragment.java

   db = new SQLiteHelper(getContext());
    notesList.addAll(db.getAllNotes());

    mAdapter = new NotesAdapter(getContext(), notesList,getActivity(),getActivity().getSupportFragmentManager());
    RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getContext());
    recyclerView.setLayoutManager(mLayoutManager);
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    recyclerView.addItemDecoration(new MyDividerItemDecoration(getContext(), LinearLayoutManager.VERTICAL, 16));
    recyclerView.setAdapter(mAdapter);

(帶有ViewPager的活動)MainActivity.java

   mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
    final AddNotesFragment  addNotesFragment = new AddNotesFragment();
    // Set up the ViewPager with the sections adapter.
    mViewPager = (ViewPager) findViewById(R.id.container);
    mViewPager.setAdapter(mSectionsPagerAdapter);

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    final SQLiteHelper sqLiteHelper = new SQLiteHelper(CenterActivity.this);

    mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
    tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));

如何更新RecyclerView的數據?

您可以使用InterfaceEventBus更新數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM