似乎不可能在XML资源字符串中添加新行"/ n".还有另一种方法吗?
谢谢
我的要求
注意:我需要支持Android API 15及更高版本.
在我的PreferenceFragment中,我正在将PreferenceScreen动态添加到PreferenceCategory.
PreferenceScreen as = mgr.createPreferenceScreen(context);
as.setTitle(name);
myCategory.addPreference(as);
Run Code Online (Sandbox Code Playgroud)
当设置活动呈现时,这些PreferenceScreens仅在其行的标题中呈现,请参见下图.

我想自定义此行中显示的内容.理想情况下,我希望在下面有一个摘要标题,标题/摘要左侧的图标和右侧的某些行上的图标.请参阅下面的模型图像.

PreferenceScreen.setWidgetLayoutResource(int widgetLayoutResId)
我知道我可以使用"setWidgetLayoutResource"在我的设置活动中使用以下代码在行布局的右侧添加一个图标(以及带有"setSummary"的摘要)
PreferenceScreen as = mgr.createPreferenceScreen(context);
as.setTitle(name);
as.setSummary(summary);
as.setWidgetLayoutResource(R.layout.as_widget);
myCategory.addPreference(as);
Run Code Online (Sandbox Code Playgroud)
其中"as_widget.xml"是
<?xml version="1.0" encoding="utf-8"?>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_action_favorite"/>
Run Code Online (Sandbox Code Playgroud)
这将产生如下的UI

这让我更接近我想要的但仍然不完全是我想要的(错过了行开头的图标).
PreferenceScreen.setLayoutResource(int layoutResId)
我相信如果我使用它,那么我可以控制整行的渲染.我在stackoverflow上看过这个例子,比如
根据我的理解,您指定的布局文件必须具有以下内容
然而,当我尝试这样做时,Android Studio突出显示"@ + android:id/summary",错误为"无法解析符号'@ + android:id/summary'.当应用程序运行时,我的行呈现为完全空白.
我的java是
PreferenceScreen as = mgr.createPreferenceScreen(context);
as.setTitle(name);
as.setSummary(summary);
as.setLayoutResource(R.layout.as_row_layout);
myCategory.addPreference(as);
Run Code Online (Sandbox Code Playgroud)
我的布局是
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/widget_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:paddingRight="?android:attr/scrollbarSize">
<ImageView
android:id="@+id/icon1"
android:src="@drawable/ic_action_email" …Run Code Online (Sandbox Code Playgroud) 在这张图片中,我的标题Preference并没有包裹它的父母.
如何将标题换行到新行?
谢谢.

XML:
<CheckBoxPreference
android:key="keypref"
android:summary="Summary text does wrap around the borders"
android:title="The title of this preference is" >
</CheckBoxPreference>
Run Code Online (Sandbox Code Playgroud)