I was working with an Activity with multiple Fragments. Whenever I update List from other Activity or Fragment I got NullPointerException here in line present in onStart method.
adapter = new MedicineAdapter(getActivity(), medicineList);
Here is my Fragment
public class frag_stock extends Fragment{
DatabaseReference databaseRoot;
DatabaseReference databaseMedicines;
EditText etSearch;
TextView tvAdd;
private ProgressBar spinner;
ListView listViewMedicine;
List<Medicine> medicineList;
MedicineAdapter adapter;
TextView emptyTextView;
int medicineCount =0;
private FirebaseAuth mAuth;
public HashMap<String , Integer> mapForDate = new HashMap<String , Integer>();
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_stock, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    mAuth = FirebaseAuth.getInstance();
    spinner = (ProgressBar)view.findViewById(R.id.progressBar1);
    emptyTextView = (TextView)view.findViewById(R.id.empty_view);
    medicineList = new ArrayList<>();
    databaseRoot = FirebaseDatabase.getInstance().getReference();
    databaseMedicines = databaseRoot.child("Medicines");
    listViewMedicine = (ListView)view.findViewById(R.id.list);
    listViewMedicine.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            Medicine currentMedicine = adapter.getItem(position);
            assert currentMedicine != null;
            String name = currentMedicine.getMedicineName();
            int quantity = currentMedicine.getMedicineQuantity();
            String id = currentMedicine.getId();
            String type = currentMedicine.getType();
            Intent intent = new Intent(getActivity(),UpdateActivity.class);
            intent.putExtra("name",name);
            intent.putExtra("mapForDate",mapForDate);
            intent.putExtra("quantity",quantity);
            intent.putExtra("id",id);
            intent.putExtra("type",type);
            startActivity(intent);
        }
    });
    /*
    etSearch = (EditText)view.findViewById(R.id.etSearch);
    etSearch.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        }
        @Override
        public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
            List<Medicine> newList = new ArrayList<Medicine>();
            String filter = charSequence.toString();
            for (int i=0;i<medicineList.size();i++)
            {
                if (medicineList.get(i).getMedicineName().toLowerCase().contains(filter.toLowerCase()))
                {
                    newList.add(medicineList.get(i));
                }
            }
            if(newList.isEmpty()){
                emptyTextView.setText("No Medicines found!");
            }
            adapter = new MedicineAdapter(getActivity(),newList);
            listViewMedicine.setAdapter(adapter);
        }
        @Override
        public void afterTextChanged(Editable editable) {
        }
    });
    */
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}
@Override
public void onStart() {
    super.onStart();
    if (getActivity() != null) {
        spinner.setVisibility(View.VISIBLE);
        databaseMedicines.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (!medicineList.isEmpty()) {
                    adapter = new MedicineAdapter(getActivity(), medicineList);
                    listViewMedicine.setAdapter(adapter);
                }
                medicineList.clear();
                for (DataSnapshot medicineSnapshot : dataSnapshot.getChildren()) {
                    Medicine medicine = medicineSnapshot.getValue(Medicine.class);
                    medicineList.add(medicine);
                }
                //Toast.makeText(MainActivity.this, medicineList.size() + "", Toast.LENGTH_SHORT).show();
                adapter = new MedicineAdapter(getActivity(), medicineList);
                listViewMedicine.setAdapter(adapter);
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
        spinner.setVisibility(View.GONE);
    }
}
Logcat
 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.view.LayoutInflater.from(LayoutInflater.java:234)
                                                                                              at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:178)
                                                                                              at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:163)
                                                                                              at com.example.android.hospitalmanagementsystem.MedicineAdapter.<init>(MedicineAdapter.java:0)
                                                                                              at com.example.android.hospitalmanagementsystem.frag_stock$2.onDataChange(frag_stock.java:166)
                                                                                              at com.google.android.gms.internal.zzbmz.zza(Unknown Source)
                                                                                              at com.google.android.gms.internal.zzbnz.zzYj(Unknown Source)
                                                                                              at com.google.android.gms.internal.zzboc$1.run(Unknown Source)
                                                                                              at android.os.Handler.handleCallback(Handler.java:739)
                                                                                              at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                              at android.os.Looper.loop(Looper.java:148)
                                                                                              at android.app.ActivityThread.main(ActivityThread.java:7331)
                                                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Adapter class
public class MedicineAdapter extends ArrayAdapter<Medicine> {
private Activity context;
private Filter medicineFilter;
private List<Medicine> medicineList;
public MedicineAdapter(Activity context, List<Medicine> medicines) {
    super(context,0,medicines);
    this.context = context;
    this.medicineList = medicines;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    LayoutInflater inflater = context.getLayoutInflater();
    View listItemView = convertView;
    if (listItemView == null) {
        listItemView = inflater.inflate(R.layout.list_item,null,true);
    }
    TextView medicineNameTV = (TextView)listItemView.findViewById(R.id.medicineName);
    TextView medicineQuantityTV = (TextView)listItemView.findViewById(R.id.medicineQuantity);
    TextView medicineType = (TextView)listItemView.findViewById(R.id.medicineType);
    Medicine currentMedicine = getItem(position);
    GradientDrawable quantityCircle = (GradientDrawable) medicineQuantityTV.getBackground();
    assert currentMedicine != null;
    int quantityColor = getQuantityColor(currentMedicine.getMedicineQuantity());
    quantityCircle.setColor(quantityColor);
    assert currentMedicine != null;
    medicineNameTV.setText(currentMedicine.getMedicineName());
    medicineQuantityTV.setText(String.valueOf(currentMedicine.getMedicineQuantity()));
    medicineType.setText(currentMedicine.getType());
    return listItemView;
}
public int getQuantityColor(int quantity){
    int quanColor = 0;
    if(quantity <= 30){
        quanColor = ContextCompat.getColor(getContext(), R.color.quantity1);
    }
    else if(quantity > 30 && quantity < 100){
        quanColor = ContextCompat.getColor(getContext(), R.color.quantity2);
    }
    else if(quantity >= 100){
        quanColor = ContextCompat.getColor(getContext(), R.color.quantity3);
    }
    else{
        quanColor = ContextCompat.getColor(getContext(), R.color.quantity4);
    }
    return quanColor;
}
}
 
     
     
     
     
    