1

我将首选项菜单分为三个部分。如何在创建之前检查“update_button”是否存在ClickListener,因为我得到了NullPointerException,如果我要对没有“update_button”的地方进行分段。还是有其他方法?感谢您的时间和回答。

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();
        }               
    }    
}
4

1 回答 1

2

一种方法是检查 if buttonis null

例子:

Preference button = (Preference) findPreference("update_button");
if (button != null) {
    button.setOnPreferenceClickListener(
        new Preference.OnPreferenceClickListener() {
            // code
        });
}
于 2013-02-04T15:09:35.607 回答