Java 如何在android中应用PreferenceClick条件?

Java 如何在android中应用PreferenceClick条件?,java,android,Java,Android,这是我的myprefnces.xml 首选项活动测试类 我想共享我的应用程序链接我已经在另一个应用程序中完成了共享我有这方面的代码,但我在应用条件方面有问题我们将如何应用功能我们选择gmail或facebook或twitter意味着在项目上选择我第一次做的这项优先事项。你应该使用OnPreferenceChangelistener而不是打开首选项单击侦听器 OnPreferenceClickListener是在单击首选项之前执行一些任务。在Preferenceclick中,您将没有任何可比较的内

这是我的myprefnces.xml

首选项活动测试类


我想共享我的应用程序链接我已经在另一个应用程序中完成了共享我有这方面的代码,但我在应用条件方面有问题我们将如何应用功能我们选择gmail或facebook或twitter意味着在项目上选择我第一次做的这项优先事项。

你应该使用OnPreferenceChangelistener而不是打开首选项单击侦听器

OnPreferenceClickListener是在单击首选项之前执行一些任务。在Preferenceclick中,您将没有任何可比较的内容,因为它是对视图的单击。不是正在设置的值

 beerPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
     public boolean onPreferenceChange(Preference pref, Object newValue) {
         final ListPreference listPref = (ListPreference) pref;
         final int idx = listPref.findIndexOfValue((String) newValue);

         //Depending upon idx execute
         return true;
     }
 });
<?xml version="1.0" encoding="utf-8"?>
 <resources>
   <string-array name="listOptions">
     <item>Facebook</item>
     <item>Gmail</item>
     <item>Twitter</item>
     </string-array>

   <string-array name="listValues">
     <item>1 </item>
     <item>2 </item>
     <item>3</item>
   </string-array>
 </resources>
public class PreferencesActivityTest extends PreferenceActivity {
    public static final String PREF_BEER_SIZE = "listpref";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.my_prefrences);
        Preference beerPref = (Preference) findPreference(PREF_BEER_SIZE);
        beerPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {

            @Override
            public boolean onPreferenceClick(Preference preference) {
                // how will apply function for each facebook twitter and gmail
                return false;

            }
        });
    }
}
 beerPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
     public boolean onPreferenceChange(Preference pref, Object newValue) {
         final ListPreference listPref = (ListPreference) pref;
         final int idx = listPref.findIndexOfValue((String) newValue);

         //Depending upon idx execute
         return true;
     }
 });