Here's a quick Protip for people who are still writing complex onPreferenceChanged code to show the selected value of a ListPreference

Just add android:summary="%s" and Android will automatically do it for you ;)

For example, your code might look like : -

    <ListPreference
        android:summary="%s"
        android:defaultValue="km"
        android:entries="@array/distance_unit_names"
        android:entryValues="@array/distance_unit_values"
        android:key="distance_unit"
        android:title="Distance Unit"/>

Android will even put the currently selected value when you enter the preference screen.