Android:如何在点击按钮时更新viewpager内部的recyclerview内部片段

Android:如何在点击按钮时更新viewpager内部的recyclerview内部片段,android,android-viewpager,android-recyclerview,Android,Android Viewpager,Android Recyclerview,我在viewpager中的片段中有一个recyclerview。我有一个按钮在可视寻呼机外面。如何在单击按钮时更新recyclerview public class Level2MainActivity_grid1 extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConte

我在viewpager中的片段中有一个recyclerview。我有一个按钮在可视寻呼机外面。如何在单击按钮时更新recyclerview

public class Level2MainActivity_grid1 extends AppCompatActivity {

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.level2mainlayout_place1);



        // I am putting a viewpager with fragments into them and put tabs

        ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
        PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager(), Titles, Numboftabs);
        viewPager.setAdapter(pagerAdapter);
        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);
        tabLayout.setupWithViewPager(viewPager);



        Button buttonId = (Button) findViewById(R.id.planmytraveludupitown);
        buttonId.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            //I want to save some things and do the changes in the recyclerview of tab 0;

            }
        });
    }
}
我正在使用recyclerview的viewpager选项卡0中的框架代码如下所示:

public class Udupiwhattosee extends Fragment {

    private RecyclerView rv;
    private List<Udupiwhattoseearray> udupiwhattoseearray;


    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        RecyclerView v =(RecyclerView) inflater.inflate(R.layout.tab_1,container,false);
        v.setLayoutManager(new LinearLayoutManager(getActivity()));
        v.setHasFixedSize(true);
        initializeData();
        WhattoseeRVAdapter adapter = new WhattoseeRVAdapter(udupiwhattoseearray,container.getContext());
        v.setAdapter(adapter);
        return v;
    }


    private void initializeData(){
        udupiwhattoseearray = new ArrayList<>();
        udupiwhattoseearray.add(new Udupiwhattoseearray("Udupi Sri Krishna Temple", "Udupi, Karanata,INDIA", R.drawable.udupi));
        udupiwhattoseearray.add(new Udupiwhattoseearray("Udupi place 2", "Udupi, Karanata,INDIA", R.drawable.udup_krishna_math_gopura_udupi));
        udupiwhattoseearray.add(new Udupiwhattoseearray("Udupi Place 3", "Udupi, Karanata,INDIA", R.drawable.udupi_rath));
        udupiwhattoseearray.add(new Udupiwhattoseearray("Udupi place 4", "Udupi, Karanata,INDIA", R.drawable.udupi_window));
    }
公共类udupiwhatosee扩展片段{
私人回收车;
私有列表udupiwhatoseearray;
@凌驾
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
RecyclerView v=(RecyclerView)充气机。充气(R.layout.tab_1,容器,错误);
v、 setLayoutManager(新的LinearLayoutManager(getActivity());
v、 setHasFixedSize(真);
初始化数据();
WhattoseeRVAdapter=新的WhattoseeRVAdapter(udupiwhattoseearray,container.getContext());
v、 设置适配器(适配器);
返回v;
}
private void initializeData(){
udupiwhatoseearray=newarraylist();
添加(新的Udupiwattoseearray(“Udupi Sri Krishna神庙”,“Udupi,Karanata,INDIA”,R.drawable.Udupi));
添加(新的Udupiwhatseearray(“Udupi place 2”,“Udupi,Karanata,INDIA”,R.drawable.udup_krishna_math_gopura_Udupi));
添加(新的Udupiwhatseearray(“Udupi Place 3”,“Udupi,Karanata,INDIA”,R.drawable.Udupi_rath));
添加(新的udupiwhattoseearray(“Udupi place 4”,“Udupi,Karanata,INDIA”,R.drawable.Udupi_窗口));
}
你会看到界面的工作,试试这个,希望它能正常工作


您将看到界面的工作情况,尝试此操作,希望它能正常工作

您可以使用一个标志,如
isRecycleServiceWneEdUpdated
来指示是否需要更新您的
RecycleView
。单击按钮时,将此标志设置为true。使用
ViewPage\addOnPageChangeListener(…)
这样,当您的目标
片段
被选中时,检查标志并根据需要更新
RecyclerView
。您可以使用标志,如
IsRecyclerViewedUpdated
来指示是否需要更新您的
RecyclerView
。单击按钮时,将此标志设置为true。使用
ViewPage#addOnPageChangeListener(…)
这样,当您的目标
片段
被选中时,检查标志并根据需要更新
RecyclerView
  recycler_view.post(new Runnable() {
                    public void run() {
                        adapter.notifyDataSetChanged();
                    }
                });