簡體   English   中英

如何在Android中對onPreferenceClick應用條件?

[英]How to apply condition onPreferenceClick in android?

這是我的myprefnces.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
 <PreferenceCategory>


  <ListPreference
     android:entries="@array/listOptions"
     android:entryValues="@array/listValues"
     android:key="listpref"
     android:summary="List preference example"
     android:title="List preference" />
 </PreferenceCategory>
</PreferenceScreen>

我輸入了3個值array.xml

<?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>

PreferencesActivityTest.class

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;

            }
        });
    }
}

我想共享我的應用程序鏈接,我已經在另一個應用程序中共享了代碼,但是我在應用條件上遇到了問題,即我們將如何應用功能,我們選擇gmail或facebook或twitter意味着要選擇該選項第一次做。

您應該使用OnPreferenceChangelistener而不是onPreferenceClickListener。

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;
     }
 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM