J.range
J.range

Reputation: 459

OnPreferenceClickListener not working

I want to set onClickListener to my Checkboxes in Preferences XML.

When I want to set onClickListener, It does not work. In Settings Activity, there is red error on setOnPreferenceClickListener.

Someone help?. Thanks

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
    android:title="@string/Movie_feed"
    android:key="pref_overall"
    >

<CheckBoxPreference
    android:id="@+id/TopRated"
    android:key="pref_rated"
    android:summary="@string/Highest_rated"
    android:defaultValue="true" />
<CheckBoxPreference
    android:id="@+id/TopPopular"
    android:key="pref_popular"
    android:summary="@string/Most_popular"
    android:defaultValue="true" />
</PreferenceCategory>

public class SettingsActivity extends PreferenceActivity {

private CheckBox boxPopular;
private CheckBoxPreference boxTopRated;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);



    final CheckBox boxPopular = (CheckBox) findViewById(R.id.TopPopular);
    boxPopular.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
        @Override
        public boolean onPreferenceClick(Preference preference) {
            return false;
        }
    });

Upvotes: 0

Views: 978

Answers (1)

Oleg Khalidov
Oleg Khalidov

Reputation: 5268

try findPreference() + setOnPreferenceChangeListener()

findPreference("pref_popular").setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        return true;
    }
});

Upvotes: 2

Related Questions