偏好在Android

时间:2018-07-19 03:24:31

标签: android sharedpreferences android-preferences android-sharedpreferences android-preference-v14

我正在使用Android SharedPreferences API来构建设置屏幕。

我有一个设置,我需要一个较长的文字来说明用户的含义(我想使用主标题和较小的副标题,但是我认为这需要大量自定义) settings.xml就像:

<EditTextPreference

    android:defaultValue="15"
    android:inputType="number"

    android:icon="@drawable/ic_timer"
    android:key="@string/pref_comment_interval"
    android:persistent="true"
    android:lines="2"
    android:title="@string/time_between_comments" />

但即使设置lines=2并在\n处用time_between_comments换行,文本也会被换行。

<string name="time_between_comments">Time between comments (in seconds)\nLower is faster</string>

like:
enter image description here

我怎样才能使文字换行?

1 个答案:

答案 0 :(得分:0)

默认情况下,EditTextPreference的标题为singleLine="true" 因此,我们应该按如下所示对其进行自定义

public class MultiLineTitleEditTextPreference extends EditTextPreference {
    public MultiLineTitleEditTextPreference(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    public MultiLineTitleEditTextPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MultiLineTitleEditTextPreference(Context context) {
        super(context);
    }

    @Override
    protected void onBindView(View view) {
        super.onBindView(view);

        TextView textView = (TextView) view.findViewById(your_package.R.id.title);
        if (textView != null) {
            textView.setSingleLine(false);
        }
    }
}