Данные во Fragment ViewPager нужно 3 раза обновить на андроид - PullRequest
0 голосов
/ 25 октября 2018

У меня есть просмотрщик с 3 фрагментами.Затем во фрагменте 3 у меня есть запрос данных к базе данных firebase с помощью singleValueEventListener.Но проблема в том, что я обновляю данные из фрагмента 3 из базы данных Firebase.Затем откройте приложение, данные не обновляются напрямую.Мне нужно открыть и закрыть приложение 3 раза, затем данные обновляются.

Еще один случай обновления данных, я должен перейти к фрагменту 3 - фрагменту 1 - затем вернуться к фрагменту 3. Иданные обновляются.

Затем во фрагменте 3 у меня есть обновление свайпом.Чтобы обновить данные, мне также нужно провести два раза, прежде чем обновлять данные

    @Override
    public View onCreateView(LayoutInflater inflater, final ViewGroup container,
                             Bundle savedInstanceState) {

        v =  inflater.inflate(R.layout.fragment_three, container, false);

        userRef = FirebaseDatabase.getInstance().getReference("user_course");
        users = FirebaseAuth.getInstance().getCurrentUser();
        mataKuliahRef = FirebaseDatabase.getInstance().getReference("courses");
        daftarPengumumanRef = FirebaseDatabase.getInstance().getReference("pengumuman");
        pengumumanRef = FirebaseDatabase.getInstance().getReference("pengumuman_course");
        mFlagPengumuman = FirebaseDatabase.getInstance().getReference("flag_pengumuman");

        swipeLayout = (SwipeRefreshLayout) v.findViewById(R.id.swiperefresh);

        View b= ((MainActivity)getActivity()).tabThree;
        badge = new BadgeView(getActivity(), b);
        badge.setBadgeMargin(90,0);
        badge.setTextSize(10);



        swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                new Handler().postDelayed(new Runnable() {

                    @Override public void run() {
                        swipeLayout.setRefreshing(false);
                        listPengumuman.clear();
                        consolidatedList.clear();
                        LoadDataPengumuman();


                    }
                    private void onLoaded() {
                        swipeLayout.setEnabled(true);
                        swipeLayout.setRefreshing(false);
                    }

                }, 500);
            }
        });

        counter = new Counter() {
            @Override
            public void setCounter(int count) {
                Log.e("Ser_Counter", "total countnya " + asd);
                Log.e("Ser_Counter", "masuk count ");
                asd=asd+count;
                if(asd==0){
                    Log.e("Ser_Counter", "masuk asd=0");
                    badge.hide();

                }else{
                    Log.e("Ser_Counter", "masuk asd=else");

                    badge.setText(asd + "");
                    badge.show();
                }

            }
        };



        mJumlahPengumuman = (TextView) v.findViewById(R.id.jumlah_pengumuman);
        mRecyclerView = (RecyclerView) v.findViewById(R.id.PengumumanRView);
        mRecyclerView.setHasFixedSize(true);

        adapter = new myAdapterPengumuman(getActivity().getApplicationContext(), consolidatedList,counter);
        LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity().getApplicationContext());
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        mRecyclerView.setLayoutManager(layoutManager);
        RecyclerViewHeader header = (RecyclerViewHeader) v.findViewById(R.id.header3);
        header.attachTo(mRecyclerView);
        mRecyclerView.setAdapter(adapter);


        LoadDataPengumuman();

        return v;
    }

Я не знаю, что здесь не так, пожалуйста, помогите.

1 Ответ

0 голосов
/ 25 октября 2018

Вы не можете изменить данные Fragment-3 из Fragment-1, потому что ViewPager может активировать только Fragment-2..

Допустим, вы находитесь на Page-5 ViewPager может активировать только Page4 и Страница-6, не др.

...