1

設定メニューを3つの部分に分けています。作成する前に「update_button」が存在するかどうかを確認する方法。 「update_button」がない場所をフラグメント化する場合は、をClickListener取得しているためです。または他の方法がありますか?お手数をおかけしますが、よろしくお願いいたします。NullPointerException

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

1 つの方法は、 であるかどうかを確認することbuttonですnull

例:

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