Search code examples
javaandroidmenuandroid-preferences

How to check if Preference exist


I am dividing Preference menu into three parts. How to check if "update_button" exist before creating ClickListener, because i'm getting NullPointerException, if i'm going to fragment where is no "update_button". Or there are other way? Thank you for your time and answers.

public static class PrefsFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle aSavedState) {
        super.onCreate(aSavedState);
        Context anAct = getActivity().getApplicationContext();
        int thePrefRes = anAct.getResources().getIdentifier(
                getArguments().getString("pref-resource"), "xml", anAct.getPackageName());
        addPreferencesFromResource(thePrefRes);
        try {
            Preference button = (Preference) findPreference("update_button");
            button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
                @Override
                public boolean onPreferenceClick(Preference arg0) {
                    Toast.makeText(getActivity(), "Update Done.",Toast.LENGTH_LONG).show();
                    return true;
                }
            });
        } catch(Exception e) {
            e.printStackTrace();
        }               
    }    
}

Solution

  • One way is to check if button is null.

    Example:

    Preference button = (Preference) findPreference("update_button");
    if (button != null) {
        button.setOnPreferenceClickListener(
            new Preference.OnPreferenceClickListener() {
                // code
            });
    }