我正在使用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>
我怎样才能使文字换行?
答案 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);
}
}
}