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 に答える