我正在测试一些想法,可能需要一点帮助。情况是:我有一个带有偏好片段的活动。单击其中一个选项时,我希望我的活动显示或隐藏首选项下方的另一个片段。我得到的只是 NullPointerException,我想我无法从我的 GroupSettingFragment 中获得对 MainActivity 的引用。以下是代码:
public class GroupsSettingFragment extends PreferenceFragment{
MainActivity activity = (MainActivity)getActivity();
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.groups_settings);
Preference pref = findPreference("pref3");
pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
activity.performChange();
return false;
}
});
}
}
在 MainActivity
public void showContacts(){
fr = new ContactsListFragment();
FragmentTransaction tr = getFragmentManager().beginTransaction();
tr.add(R.id.contact_list, fr);
tr.commit();
}
public void hideContacts(){
FragmentTransaction tr = getFragmentManager().beginTransaction();
tr.remove(fr);
tr.commit();
}
public void performChange(){
if(isShown){
//hideContacts();
isShown = false;
}else{
//showContacts();
isShown = true;
}
}
我将不胜感激任何帮助。问候