gregkorossy / Android-Support-Preference-V7-Fix

Android androidx.preference support library has some issues, this lib tries to fix them.
https://discord.gg/87NVsSK
Apache License 2.0
497 stars 46 forks source link

OnPreferenceListeners don't work? #73

Closed anonym24 closed 7 years ago

anonym24 commented 7 years ago

I'm trying to set listeners but they don't work:

@Override
    public void onCreatePreferencesFix(Bundle bundle, String s) {
        addPreferencesFromResource(R.xml.preferences);

        final SwitchPreferenceCompat equalizerSwitch = (SwitchPreferenceCompat) findPreference("equalizer");
        equalizerSwitch.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                Log.i(TAG, "onPreferenceClick"); // isn't being shown in logcat
                return false;
            }
        });
    }
anonym24 commented 7 years ago

I changed it to

findPreference("equalizer").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                Log.i(TAG, "equalizer onPreferenceClick");
                return false;
            }
        });

And now it works, but why doesn't work this first my code?

gregkorossy commented 7 years ago

Are you sure it wasn't just a filtering issue in logcat? Because I don't see any real difference between the two source codes. (It wouldn't matter if you cast the found preference.)

anonym24 commented 7 years ago

I also was calling there my function, no just logging right now I don't really need it, but I hope it will be working ok when I need this again