2013-05-05 83 views
1

我在Android動態壁紙應用程序中的偏好如下。 (這些是複選框)。我想添加一個Facebook頁面的鏈接到這個列表。看看網上的Android PreferenceCategory,我沒有看到任何「LinkPreference」或「ButtonPreference」,但是再次,鏈接或按鈕並不是真正的偏好,所以也許我試圖在一個圓孔。這是可能的,如果是這樣,如何?將鏈接添加到偏好設置?

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > 
android:title="@string/livewallpaper_settings"> 
    <PreferenceCategory android:title="@string/livewallpaper_settings" > 
     <CheckBoxPreference 
      android:defaultValue="true" 
      android:key="showred" 
      android:summary="Display red." 
      android:title="Display red" /> 
     <CheckBoxPreference 
      android:defaultValue="true" 
      android:key="showgreen" 
      android:summary="Display green." 
      android:title="Display green" /> 
    </PreferenceCategory> 
</PreferenceScreen> 

這個問題已經被問過: Android Add Link to a preference activity - how? ,但沒有回答。

[編輯] 所以現在有下面的代碼。它確實進入Facebook,但只有在首先點擊其中一個複選框首選項後才能訪問Facebook。

在livewallpaper_settings.xml:

<PreferenceCategory android:title="@string/livewallpaper_settings" > 
<Preference 
    android:key="facebook" 
    android:summary="@string/facebook" 
    android:title="@string/facebook" /> 
</PreferenceCategory> 

LiveWallpaperSettings.java:
公共無效onSharedPreferenceChanged(SharedPreferences sharedPreferences,String鍵) { Log.d( 「LiveWallpaperSettings.onSharedPreferenceChanged()」,「鍵: 「+ key); final Preference mypref =(首選項)findPreference(「facebook」); mypref.setOnPreferenceClickListener(新OnPreferenceClickListener(){

@Override 
    public boolean onPreferenceClick(Preference arg0) { 
    Log.d("LiveWallpaperSettings", "mypref: " + mypref.getKey()); 
    if (mypref.getKey().equals("facebook")) { 
    Log.d("LiveWallpaperSettings", "LINK TO FACEBOOK"); 
    openWebURL("http://www.facebook.com"); 
    return false; 
    } 
    return false; 
} }); 
return; 
} 

public void openWebURL(String inURL) { 
    Log.d("openWebURL", inURL); 
    Intent browse = new Intent(Intent.ACTION_VIEW , Uri.parse(inURL)); 

    startActivity(browse); 
} 
+0

但是它已被回答,你只是沒有點擊鏈接的評論 – Snailer 2013-05-05 22:52:45

+0

哦,對不起,我忽略了那個鏈接,我會看看這個,謝謝。 – 2013-05-05 23:58:35

回答

2

怎麼樣的EditTextPreference?您可以使用相同的屬性爲EditTextEditTextPreference這樣你就可以限制輸入到一行,並顯示正確的IME電子郵件輸入等