nullPointerException on calling getActivity().runOnUiThread{new Runnable inside Fragment

133 Views Asked by At

i'm trying to update my ListPreference summary inside my PreferenceFragment with timer while i'm inside my fragment everything is fine but as soon as i press the back button my app crashes and it throws a null pointer exception saying getActivity() retured null. i also tried suppressing it by setting the timer only when getActivity() won't return null but it did'nt work.

here's my code:

public class ButtonsFragment extends PreferenceFragmentCompat {

@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
    setPreferencesFromResource(R.xml.misc_option_settings, rootKey);
    
    if (getActivity() == null)
        return;
    
    new Timer().scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    ListPreference rows = findPreference("btn_rows");
                    rows.setSummary("current button rows: " + rows.getValue());

                    ListPreference color = findPreference("btn_colors");
                    color.setSummary("current button color: " + color.getEntry());
                }
            });
        }
    }, 0, 100);
}

}

would appreciate if you could help.

1

There are 1 best solutions below

0
On BEST ANSWER

You should check for activity not to be null inside run method. check for activity not to be null before calling getActivity().runOnUiThread.