如何在“首选项”屏幕中设置自定义字符串?

时间:2015-07-26 05:14:22

标签: android download sharedpreferences settings preferences

在我的preferences.xml中,我有这个选项:

<PreferenceCategory android:title="@string/pref_header_storage">

        <Preference
            android:key="downloadLocation"
            android:title="@string/pref_title_wsl"
            android:summary="@string/pref_summary_wsl"
            android:persistent="true" />

    </PreferenceCategory>

我想知道是否可以为该偏好添加自定义文本,因此我可以向用户显示该偏好的当前值。

所以最后的偏好可能是:

  

下载文件夹

     

选择一个文件夹以保存下载内容。

     

当前所选文件夹:XXXXXXX

我想在该偏好中添加最后一行,但我不知道该怎么做。

是的,有人能帮帮我吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

将您的首选项放在PreferenceFragment中。然后使用此

将其加载到“设置活动”上
getFragmentManager().beginTransaction().replace(R.id.container, new PreferencesFragment()).commit();

您的偏好片段应扩展PreferenceFragment

public class PreferencesFragment extends PreferenceFragment

这样,您可以编辑首选项活动的xml,并在容器下方添加首选项片段的文本。

设置活动的示例代码:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center" >

    <include layout="@layout/toolbar"/>

    <FrameLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/container"
        android:orientation="vertical" 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".SettingActivity" tools:ignore="MergeRootFrame"
        android:layout_below="@+id/toolbar"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:foreground="?android:windowContentOverlay">
    </FrameLayout>

    <TextView
        android:id="@+id/text_below_prefernces"
        android:layout_below="@+id/container"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content">

    </TextView>

</RelativeLayout>