0

我需要为我的偏好片段设置一个 onPreferenceChangeListener,但我不知道我该怎么做......这是我的代码

public class PrefsFragment extends PreferenceFragment {
    Context context;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
        context = this.getActivity();
        context.setTheme(R.style.myStyle);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = super.onCreateView(inflater, container, savedInstanceState);
        view.setBackgroundColor(0x96000000);
        return view;
    }
}
4

1 回答 1

2

您的 PrefsFragment 需要实现 OnSharedPreferenceChangeListener 接口,例如:

public class PrefsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {...

然后您可以实现 onSharedPreferenceChanged 方法:

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
    //do something 
}

}

确保你也注册了监听器:

@Override
public void onResume() {
    super.onResume();
    getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);

}

@Override
public void onPause() {
    getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
    super.onPause();
}
于 2015-11-10T17:18:00.803 回答