考虑这个preferences.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/preference_main">
<PreferenceScreen
android:title="@string/preference_sight"
android:key="category_sight">
<ListPreference
android:summary="@string/preference_sight_wb_msg"
android:title="@string/preference_sight_wb_title"
android:key="sight_wb" android:defaultValue="auto"/>
<Preference
android:key="sight_wb_values_cache"/>
<eu.elevelcbt.sm.preferences.PercentBarPreference
android:title="@string/preference_sight_mean_confidence_min_title"
android:summary="@string/preference_sight_mean_confidence_min_msg"
android:key="sight_mean_confidence_min"
android:defaultValue="80"/>
<CheckBoxPreference
android:key="sight_flash"
android:defaultValue="false"
android:summary="@string/preference_sight_flash_msg"
android:title="@string/preference_sight_flash_title"/>
</PreferenceScreen>
</PreferenceScreen>
当我在MainPreference类中显示时,PreferenceActivity正确显示了一个第一级菜单,其中包含一个条目“Sight”(@ string / preference_main),当选中该条目时,会将我带到第二个首选项屏幕,其中包含我的所有首选项。一切都按我想要的方式运作。唯一的事情是在第一个首选项屏幕上,我想在标签“Sight”旁边放置一个图标,就像在主Android设置菜单中一样。
我该怎么做?非常感谢您的任何帮助! 卢卡。
矿:
所需:
......嗯我试过但没有运气......
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/preference_main">
<PreferenceScreen
android:title="@string/preference_sight"
android:key="category_sight"
android:icon="@drawable/ic_dialog_light">
...
</PreferenceScreen>
我在哪里做错了?
答案 0 :(得分:7)
我有另一个建议,适用于我的Nexus 7,运行Android 4.2,以及我的ASUS TF101,运行Android 4.0.3:将icon属性添加到首选项标题中,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >
<header
android:fragment="com.example.SettingsFragment"
android:summary="@string/pref_summary_caching"
android:icon="@drawable/ic_pref_cache"
android:title="@string/pref_cat_caching" >
<extra
android:name="category"
android:value="caching" />
</header>
</preference-headers>
这使图标显示在标题文本的左侧。似乎无处记录,并且您无法通过XML编辑器的Structure屏幕输入值,因为似乎不存在preference-headers文件的XML架构。但是,嘿,它有效!
答案 1 :(得分:5)
使用android:icon
http://developer.android.com/reference/android/preference/Preference.html#attr_android:icon
答案 2 :(得分:3)
您可以查看设置应用的源代码,看看他们正在扩展Preference
来执行此操作。这是类文件。
希望这有帮助!
答案 3 :(得分:0)
答案 4 :(得分:0)
只需添加android:icon="@mipmap/icon_launcher
它有效。
示例代码:
<ListPreference
android:icon="@mipmap/icon_launcher"
android:title="@string/pref_sort_order_label"
android:key="@string/pref_sort_order_key"
android:defaultValue="@string/pref_most_popular"
android:entries="@array/pref_sort_order"
android:entryValues="@array/pref_sort_order">
</ListPreference>
答案 5 :(得分:0)
图标
代表“首选项”图标的Drawable。
示例:app:icon =“ @ drawable / ic_camera”
https://developer.android.com/guide/topics/ui/settings/components-and-attributes?hl=vi