如何将listpreference显示为常规活动?

时间:2013-04-30 13:07:35

标签: android android-preferences

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

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

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

  1. 扩展首选项并调用扩展首选项的setIntent()方法,然后启动包含listview的活动,并将所选选项存储在SharedPrefs中。

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

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

    -

2 个答案:

答案 0 :(得分:0)

我遇到了很多麻烦,我终于放弃了。通过我自己的主题扩展holo.light主题我可以改变它(例如复选框标记是橙色)但我无法获得更改颜色的listpreference。你可以在这个themes.xml中找到它应该如何完成

themes.xml

答案 1 :(得分: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);
    }
}