1

我在我的活动设置中有一个 lispreference,它由类似于对话框视图的默认样式显示。

相反,我希望它像活动中的常规列表视图一样显示:(如这张图片:http ://cdn4.staztic.com/cdn/screenshot/meteogram-weather-847838-0.jpg )

我正在考虑两种方法来实现这一点:

  1. 扩展 Preference 并调用扩展 Preference 的 setIntent() 方法,然后启动一个包含列表视图的活动并将所选选项存储在 SharedPrefs 中。

  2. 自定义 ListPreference 的外观并使其看起来像常规活动,但我没有找到如何做到这一点

对此的任何想法将不胜感激

--

4

2 回答 2

0

我为此遇到了很多麻烦,最后我放弃了。通过用我自己的主题扩展 holo.light 主题,我可以更改它(例如,复选框标记为橙色)但我无法获得更改颜色的 listpreference。您可以在此主题中找到它应该如何完成

主题.xml

于 2013-04-30T13:35:32.337 回答
0

最后我使用以下 XML (R.xml.prefs_location) 完成了它:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <Preference
        android:key="someKey"
        android:summary="Some text"
        android:title="Location" 
        />        
</PreferenceScreen>

在 PreferenceFragment 类中,我设置了在单击首选项时打开所需活动的意图:

Public class FragLocationPref extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.prefs_location);
        Intent i = new Intent(this.getActivity().getBaseContext(), LocationChooseActivity.class);
        findPreference("someKey").setIntent(i);
    }
}
于 2013-05-06T09:53:23.700 回答