2013-05-05 87 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电子邮件输入等