Я занимаюсь разработкой мобильного приложения. особенно это приложение имеет много фрагмента. теперь проблема в том. Как деятельность, я не могу перезапустить или обновить фрагмент. давайте посмотрим на факт,

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


                String et = upc.getText().toString().trim();
                if(!TextUtils.isEmpty(et)){
                    UpdateB( bid, et);
                    alertDialog.dismiss();
                    finish();
                    startActivity(getIntent());
                }

                else {

                    Toast.makeText(ShowBazarEntry.this,"Filed Empty!",Toast.LENGTH_SHORT);
                }

            }
        });
    }

Я беру около финиша (); и startActivity (getIntent ()); часть это перезапустить деятельность. но когда я хочу сделать то же самое во фрагменте, следуя процедуре, описанной ниже, это не работает.

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


            String et = upc.getText().toString().trim();
            if(!TextUtils.isEmpty(et)) {
                UpdateB(bid, et);
                alertDialog.dismiss();
                Fragment fragment = getFragmentManager().findFragmentByTag("ShowBazarEntry");
                FragmentTransaction transaction = getFragmentManager().beginTransaction();
                transaction.detach(fragment);
                transaction.attach(fragment);
                transaction.commit();
            }

            else {

                Toast.makeText(getActivity(),"Filed Empty!",Toast.LENGTH_SHORT);
            }

        }
    });
}

Вот полный код класса Fragment.

import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.ViewModelProviders;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Build;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.example.closeup.BazarList;
import com.example.closeup.Model.Bazar;
import com.example.closeup.R;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.List;

public class ShowBazarEntry extends Fragment {

    private ShowBazarEntryViewModel mViewModel;

    ListView listViewBazars;
    List<Bazar> bazarList;
    DatabaseReference databaseBazars;



    public static ShowBazarEntry newInstance() {
        return new ShowBazarEntry();
    }

    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        View view= inflater.inflate(R.layout.show_bazar_entry_fragment, container, false);


        Button bt=(Button)view.findViewById(R.id.totalbutton);
        final TextView testtotal=(TextView)view.findViewById(R.id.carry_totalcost);

        databaseBazars= FirebaseDatabase.getInstance().getReference("BazarList");

        listViewBazars=(ListView)view.findViewById(R.id.listview_bazar);
        bazarList =new ArrayList<>();


        //oncreate calling litsner for listview



        databaseBazars.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                bazarList.clear();
                for (DataSnapshot ds : dataSnapshot.getChildren()) {
                    Bazar bazar = ds.getValue(Bazar.class);
                    bazarList.add(bazar);

                }


                BazarList adapter = new BazarList(getActivity(), bazarList);
                listViewBazars.setAdapter(adapter);


            }


            @Override
            public void onCancelled(DatabaseError databaseError) {}


        });

 //for update value

        listViewBazars.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
                Bazar bazar = bazarList.get(i);

                showupdatedialog(bazar.getBid(),bazar.getDate());
                return false;
            }
        });


                databaseBazars.addListenerForSingleValueEvent (new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {

                        bazarList.clear();
                        Integer total = 0;

                        for (DataSnapshot ds : dataSnapshot.getChildren()) {
                            Bazar bazar = ds.getValue(Bazar.class);
                            Integer cost = Integer.valueOf(bazar.getCost());
                            total = total + cost;
                            bazarList.add(bazar);

                        }

                       Toast.makeText(getActivity(),"The total Is"+total,Toast.LENGTH_SHORT).show();


                        BazarList adapter = new BazarList(getActivity(), bazarList);
                        listViewBazars.setAdapter(adapter);


                    }


                    @Override
                    public void onCancelled(DatabaseError databaseError) {}
                }); ;


        return view;

    }


    //function for update dialogue


    private void showupdatedialog(final String bid, String da) {

        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
        LayoutInflater inflater = getLayoutInflater();

        View dialogview = inflater.inflate(R.layout.updatedi, null);
        dialogBuilder.setView(dialogview);

        final EditText upc = (EditText) dialogview.findViewById(R.id.updatecost);
        final Button btr = (Button) dialogview.findViewById(R.id.btnupdate);

        dialogBuilder.setTitle("Udating Cost of Date " + da);

        final AlertDialog alertDialog = dialogBuilder.create();

        alertDialog.show();


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


                String et = upc.getText().toString().trim();
                if(!TextUtils.isEmpty(et)) {
                    UpdateB(bid, et);
                    alertDialog.dismiss();
                    Fragment fragment = getFragmentManager().findFragmentByTag("ShowBazarEntry");
                    FragmentTransaction transaction = getFragmentManager().beginTransaction();
                    transaction.detach(fragment);
                    transaction.attach(fragment);
                    transaction.commit();
                }

                else {

                    Toast.makeText(getActivity(),"Filed Empty!",Toast.LENGTH_SHORT);
                }

            }
        });
    }

    private boolean UpdateB(String id , String tp){
        databaseBazars = FirebaseDatabase.getInstance().getReference("BazarList").child(id);

        databaseBazars.child("cost").setValue(tp);

        return true;
    }








    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        mViewModel = ViewModelProviders.of(this).get(ShowBazarEntryViewModel.class);
        // TODO: Use the ViewModel
    }

}

еще несколько небольших советов было бы заметно. я борюсь с другой проблемой, я не могу установить значение 'total' в текстовом представлении testtotal.setText (total); эта процедура не работает. В результате происходит сбой. Итак, в итоге: 1, как я могу перезапустить фрагмент, пока выполняется обновление (что находится в функции showupdatedialogue ()) 2. Как я могу установить Text для View. Заранее спасибо.

вот бревенчатый кот. еще одна информация. данные обновляются до тех пор, пока я нахожусь в том же фрагменте, но если я перехожу к другому фрагменту, то еще раз попробуйте обновить данные, они получили сбой. но с Activity все в порядке с кодом, потому что когда он обновляет значение, он сразу же завершает работу (); и startActivity (getIntent ()); method.but во фрагменте я действительно не могу понять, как это сделать.

12-21 00:28:03.127 8212-8212/com.example.closeup I/Choreographer: Skipped 47 frames!  The application may be doing too much work on its main thread.
12-21 00:28:16.758 8212-8212/com.example.closeup D/AndroidRuntime: Shutting down VM
12-21 00:28:16.761 8212-8212/com.example.closeup E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.closeup, PID: 8212
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
        at android.widget.ArrayAdapter.init(ArrayAdapter.java:310)
        at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:153)
        at com.example.closeup.BazarList.<init>(BazarList.java:26)
        at com.example.closeup.ui.ShowBazarEntry.ShowBazarEntry$1.onDataChange(ShowBazarEntry.java:83)
        at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@16.0.4:75)
        at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@16.0.4:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@16.0.4:55)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5293)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
0
Mamun Nayeem