Preference Activity on Preference Click Listener

后端 未结 7 2304
無奈伤痛
無奈伤痛 2020-12-14 18:27

I am building a Preference Activity where most of the preferences in the list will be executing code and not modifying a SharedPreference directly. My preferences.xml file l

相关标签:
7条回答
  • 2020-12-14 19:22

    I came up with my own (what I believe is really messed up) solution; but it works.

    for(int x = 0; x < getPreferenceScreen().getPreferenceCount(); x++){
            PreferenceCategory lol = (PreferenceCategory) getPreferenceScreen().getPreference(x);
            for(int y = 0; y < lol.getPreferenceCount(); y++){
                Preference pref = lol.getPreference(y);
                pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener(){
    
                    @Override
                    public boolean onPreferenceClick(Preference preference) {
                        return false;
                    }
    
                });
            }
        }
    

    So what I have learned is there is a hierarchical system that works like: PreferenceScreen has children PreferenceCategory has children Preference, as you can see in the XML file. My problem was I could not set the preferences' onClickListeners directly from the PreferenceScreen. So I made two for loops that will get down to each Preference and set an OnPreferenceClickListener for each and every one of them. Messy, but works finally.

    0 讨论(0)
提交回复
热议问题