I got really anoying problem with accessing methods in Fragment.
Error that I got
Process: com.crelix.crelix, PID: 18913 java.lang.NullPointerException: Attempt to invoke virtual method 'void com.crelix.crelix.ClickerFragment.refreshViews()' on a null object reference at com.crelix.crelix.NavigationActivity.Refresh(NavigationActivity.java:530) at com.crelix.crelix.NavigationActivity$1$1.run(NavigationActivity.java:84) at android.os.Handler.handleCallback(Handler.java:810) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:189) at android.app.ActivityThread.main(ActivityThread.java:5529) 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:950) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
My Fragment Example:
    package com.crelix.crelix;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.CardView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;
import android.widget.TextView;
import org.w3c.dom.Text;
public class ClickerFragment extends Fragment {
        public static ClickerFragment newInstance() {
            ClickerFragment fragment = new ClickerFragment();
        return fragment;
    }
    public ClickerFragment() {
    }
private TextView MoneyText;
private TextView MoneyPerTapTView;
private TextView BoxesText;
private TextView BoxesPerTapTView;
private ProgressBar progressBar;
MainHolder Main = new MainHolder();
public void refreshViews(){
    MoneyText.setText("Money: " +Main.Money[0]);
    MoneyPerTapTView.setText("$ " + Main.Money[1] + " per tap");
    BoxesText.setText("Boxes: " + Main.Boxes[0] + "/100");
    BoxesPerTapTView.setText("Points " + Main.Boxes[1] + " per tap");
    progressBar.setProgress(Main.Boxes[0]);
}
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_clicker, container, false);
        MoneyText = (TextView) rootView.findViewById(R.id.MoneyText);
        MoneyPerTapTView = (TextView) rootView.findViewById(R.id.MoneyPerTapTView);
        BoxesText = (TextView) rootView.findViewById(R.id.BoxesText);
        BoxesPerTapTView = (TextView) rootView.findViewById(R.id.BoxesPerTapTView);
        progressBar = (ProgressBar) rootView.findViewById(R.id.progressBar);
        return rootView;
    }
}
And I want to access it from MainActivity like:
 public void Refresh()
{
    ClickerFragment ClickerFragment = (ClickerFragment) getSupportFragmentManager().findFragmentById(R.id.ClickerFragment);
    ClickerFragment.refreshViews();
}
Here I add my Fragments
 public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();
    Fragment fragment = null;
    if (id == R.id.nav_clicker) {
        fragment = new ClickerFragment();
    } else if (id == R.id.nav_upgrades) {
        fragment = new UpgradeFragment();
    } else if (id == R.id.nav_warehouse) {
        fragment = new WarehouseFragment();
    } else if (id == R.id.nav_postservice) {
        fragment = new PostserviceFragment();
    } else if (id == R.id.nav_shop) {
        fragment = new ShopFragment();
    } else if (id == R.id.nav_market) {
        fragment = new MarketFragment();
    } else if (id == R.id.nav_workshop) {
        fragment = new WorkshopFragment();
    } else if (id == R.id.nav_garage) {
        fragment = new GarageFragment();
    } else if (id == R.id.nav_museum) {
        fragment = new MuseumFragment();
    } else if (id == R.id.nav_collections) {
        fragment = new CollectionsFragment();
    }
    if (fragment != null) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction()
                .replace(R.id.frame_container, fragment).commit();
    }
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}
 
     
     
     
    