添加首选项的链接?

时间:2013-05-05 18:30:46

标签: android sharedpreferences android-preferences

我在Android Live壁纸应用中有偏好,如下所示。 (这些是复选框)。我想在此列表中添加指向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,但只有在首先点击其中一个复选框偏好设置后才能进入。

在livewallpaper_settings.xml中:

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

LiveWallpaperSettings.java:
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key)     {         Log.d(“LiveWallpaperSettings.onSharedPreferenceChanged()”,“key:”+ key);         final Preference mypref =(Preference)findPreference(“facebook”);         mypref.setOnPreferenceClickListener(new 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 );
}

1 个答案:

答案 0 :(得分:2)

EditTextPreference怎么样?您可以在EditText中使用与EditTextPreference相同的属性,这样您就可以将输入限制为一行,并为电子邮件输入等显示正确的IME。