page.title=Settings
page.tags="preferences","sharedpreferences"
@jd:body

<a class="notice-developers" href="{@docRoot}guide/topics/ui/settings.html">
  <div>
    <h3>Developer Docs</h3>
    <p>Settings</p>
  </div>
</a>

<p>Settings is a place in your app where users indicate their preferences for how your app should
behave. This benefits users because:</p>

<ul>
<li>You don't need to interrupt them with the same questions over and over when certain situations
arise. The settings predetermine what will always happen in those situations (see design
principle: <a href="{@docRoot}design/get-started/principles.html#decide-for-me">Decide for me but
let me have the final say</a>).</li>
<li>You help them feel at home and in control (see design principle:
<a href="{@docRoot}design/get-started/principles.html#make-it-mine">Let me make it mine</a>).</li>
</ul>

<h2 id="flow-structure">Flow and Structure</h2>

<h4 id="settings-access">Provide access to Settings in the action overflow</h4>

<p>Settings is given low prominence in the UI because it's not frequently needed. Even if there's
room in the <a href="{@docRoot}design/patterns/actionbar.html">action bar</a>, never make Settings
an action button. Always keep it in the action overflow and label it "Settings". Place it below
all other items except "Help".</p>

<img src="{@docRoot}design/media/settings_overflow.png">

<div class="vspace size-2">&nbsp;</div>

<h4 id="what-to-make-a-setting">Avoid the temptation to make everything a setting</h4>

<p>Because Settings is a few navigational steps away, no matter how many items you have, they'll
never clutter up the core part of your UI. This may seem like good news, but it also poses a
challenge.</p>

<p>Settings can be a tempting place to keep a lot of stuff&mdash;like a hall closet where things
get stashed when you tidy up before company comes over. It's not a place where you spend lots of
time, so it's easy to rationalize and ignore its cluttered condition. But when users visit
Settings&mdash;however infrequently&mdash;they'll have the same expectations for the experience as
they do everywhere else in your app. More settings means more choices to make, and too many are
overwhelming.</p>

<p>So don't punt on the difficult product decisions and debates that can bring on the urge to
"just make it a setting". For each control you're considering adding to Settings, make sure it
meets the bar:</p>

<img src="{@docRoot}design/media/settings_flowchart.png">

<div class="vspace size-3">&nbsp;</div>

<div class="layout-content-row">
  <div class="layout-content-col span-5 with-callouts">

<h4 id="group-settings">If you still have lots of settings, group related settings together</h4>

<p>The number of items an average human can hold in short-term memory is 7&plusmn;2. If you
present a list of 10 or more settings (even after applying the criteria above), users will have
more difficulty scanning, comprehending, and processing them.</p>

<p>You can remedy this by dividing some or all of the settings into groups, effectively turning
one long list into multiple shorter lists. A group of related settings can be presented in one of
two ways:</p>

<ol>
<li><h4>Under a section divider</h4></li>
<li><h4>In a separate subscreen</h4></li>
</ol>

<p>You can use one or both these grouping techniques to organize your app's settings.</p>

<p>For example, in the main screen of the Android Settings app, each item in the list navigates
to a subscreen of related settings. In addition, the items themselves are grouped under section
dividers.</p>

  </div>
  <div class="layout-content-col span-8">

    <img src="{@docRoot}design/media/settings_grouping.png">

  </div>
</div>

<p>Grouping settings is not an exact science, but here's some advice for how to approach it, based
on the total number of settings in your app.</p>

<div class="vspace size-1">&nbsp;</div>

<div class="layout-content-row">
  <div class="layout-content-col span-2">

<h4>7 or fewer</h4>

  </div>
  <div class="layout-content-col span-11">

<p>Don't group them at all. It won't benefit users and will seem like overkill.</p>

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-2">

<h4>8 to 10</h4>

  </div>
  <div class="layout-content-col span-11">

<p>Try grouping related settings under 1 or 2 section dividers. If you have any "singletons"
(settings that don't relate to any other settings and can't be grouped under your section
dividers), treat them as follows:</p>

<ul>
<li>If they include some of your most important settings, list them at the top without a section
divider.</li>
<li>Otherwise, list them at the bottom with a section divider called "OTHER", in order of
importance.</li>
</ul>

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-2">

<h4>11 to 15</h4>

  </div>
  <div class="layout-content-col span-11">

<p>Same advice as above, but try 2 to 4 section dividers.</p>

<p>Also, try the following to reduce the list:</p>

<ul>
<li>If 2 or more of the settings are mainly for power users, move them out of your main Settings
screen and into an "Advanced" subscreen. Place an item in the action overflow called "Advanced" to
navigate to it.</li>
<li>Look for "doubles": two settings that relate to one another, but not to any other settings.
Try to combine them into one setting, using the design patterns described later in this section.
For example, you might be able to redesign two related checkbox settings into one multiple choice
setting.</li>
</ul>

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-2">

<h4>16 or more</h4>

  </div>
  <div class="layout-content-col span-11">

<p>If you have any instances of 4 or more related settings, group them under a subscreen. Then use
the advice suggested above for the reduced list size.</p>

  </div>
</div>


<h2 id="patterns">Design Patterns</h2>

<div class="layout-content-row">
  <div class="layout-content-col span-3">

<h4>Checkbox</h4>
<p>Use this pattern for a setting that is either selected or not selected.</p>

  </div>
  <div class="layout-content-col span-10">

<img src="{@docRoot}design/media/settings_checkbox.png">

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-3">

<h4>Multiple choice</h4>
<p>Use this pattern for a setting that needs to present a discrete set of options, from which the
user can choose only one.</p>

  </div>
  <div class="layout-content-col span-10">

<img src="{@docRoot}design/media/settings_multiple_choice.png">

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-3">

<h4>Slider</h4>
<p>Use this pattern for a setting where the range of values are not discrete and fall along a
continuum.</p>

  </div>
  <div class="layout-content-col span-10">

<img src="{@docRoot}design/media/settings_slider.png">

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-3">

<h4>Date/time</h4>
<p>Use this pattern for a setting that needs to collect a date and/or time from the user.</p>

  </div>
  <div class="layout-content-col span-10">

<img src="{@docRoot}design/media/settings_date_time.png">

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-3">

<h4>Subscreen navigation</h4>
<p>Use this pattern for navigating to a subscreen or sequence of subscreens that guide the user
through a more complex setup process.</p>
<ul>
<li>If navigating to a single subscreen, use the same title in both the subscreen and the label
navigating to it.</li>
<li>If navigating to a sequence of subscreens (as in this example), use a title that describes the
first step in the sequence.</li>
</ul>

  </div>
  <div class="layout-content-col span-10">

<img src="{@docRoot}design/media/settings_subscreen_navigation.png">

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-3">

<h4>List subscreen</h4>
<p>Use this pattern for a setting or category of settings that contains a list of equivalent items.
</p>
<p>The label provides the name of the item, and secondary text may be used for status. (In this
example, status is reinforced with an icon to the right of the label.) Any actions associated with
the list appear in the action bar rather than the list itself.</p>

  </div>
  <div class="layout-content-col span-10">

<img src="{@docRoot}design/media/settings_list_subscreen.png">

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-3">

<h4>Master on/off switch</h4>
<p>Use this pattern for a category of settings that need a mechanism for turning on or off as a
whole.</p>
<p>An on/off switch is placed as the first item in the action bar of a subscreen. When the switch
is turned off, the items in the list disappear, replaced by text that describes why the list is
empty. If any actions require the switch to be on, they become disabled.</p>

  </div>
  <div class="layout-content-col span-10">

<img src="{@docRoot}design/media/settings_master_on_off.png">

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-3">

<div class="vspace size-2">&nbsp;</div>

<p>You can also echo the master on/off switch in the menu item that leads to the subscreen.
However, you should only do this in cases where users rarely need to access the subscreen once
it's initially set up and more often just want to toggle the switch.</p>

  </div>
  <div class="layout-content-col span-10">

<img src="{@docRoot}design/media/settings_master_on_off_2.png">

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-3">

<h4>Individual on/off switch</h4>
<p>Use this pattern for an individual setting that requires a more elaborate description than can
be provided in checkbox form.</p>
<p>The on/off switch only appears in the subscreen so that users aren't able to toggle it without
also being exposed to the descriptive text. Secondary text appears below the setting label to
reflect the current selection.</p>
<p>In this example, Android Beam is on by default. Since users might not know what this setting
does, we made the status more descriptive than just "On".</p>

  </div>
  <div class="layout-content-col span-10">

<img src="{@docRoot}design/media/settings_individual_on_off.png">

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-3">

<h4>Dependency</h4>
<p>Use this pattern for a setting that changes availability based on the value of another setting.
</p>
<p>The disabled setting appears below its dependency, without any indentation. If the setting
includes a status line, it says "Unavailable", and if the reason isn't obvious, a brief
explanation is included in the status.</p>
<p>If a given setting is a dependency to 3 or more settings, consider using a subscreen with a
master on/off switch so that your main settings screen isn't cluttered by lots of disabled items.
</p>

  </div>
  <div class="layout-content-col span-10">

<img src="{@docRoot}design/media/settings_dependency.png">

  </div>
</div>

<h2 id="defaults">Defaults</h2>

<p>Take great care in choosing default values for each of your settings. Because settings
determine app behavior, your choices will contribute to users' first impressions of your app. Even
though users can change settings, they'll expect the initial states to be sensible. The following
questions (when applicable) may help inform your decisions:</p>

<ul>
<li>Which choice would most users be likely to choose on their own if there were no default?</li>
<li>Which choice is the most neutral or middle-of-the-road?</li>
<li>Which choice is the least risky, controversial, or over-the-top?</li>
<li>Which choice uses the least amount of battery or mobile data?</li>
<li>Which choice best supports the design principle
<a href="{@docRoot}design/get-started/principles.html#never-lose-my-stuff">Never lose my stuff</a>?</li>
<li>Which choice best supports the design principle
<a href="{@docRoot}design/get-started/principles.html#interrupt-only-if-important">Only interrupt
me if it's important</a>?
</li>
</ul>

<h2 id="writing">Writing Guidelines</h2>

<h4>Label clearly and concisely</h4>

<p>Writing a good label for a setting can be challenging because space is very limited. You only
get one line, and it's incredibly short on the smallest of devices. Follow these guidelines to
make your labels brief, meaningful, and scannable:</p>

<ul>
<li>Write each label in sentence case (i.e. only the first word and proper nouns are capitalized).
</li>
<li>Don't start a label with an instructional verb like "Set", "Change", "Edit", "Modify",
"Manage", "Use", "Select", or "Choose". Users already understand that they can do these things to
settings.</li>
<li>Likewise, don't end a label with a word like "setting" or "settings". It's already implied.
</li>
<li>If the setting is part of a grouping, don't repeat the word(s) used in the section divider or
subscreen title.</li>
<li>Avoid starting a label with a negative word like "Don't" or "Never". For example, "Don't
allow" could be rephrased to "Block".</li>
<li>Steer clear of technical jargon as much as possible, unless it's a term widely understood by
your target users. Use common verbs and nouns to convey the setting's purpose rather than its
underlying technology.</li>
<li>Don't refer to the user. For example, for a setting allowing the user to turn notifications on
or off, label it "Notifications" instead of "Notify me".</li>
</ul>

<p>Once you've decided on labels for your settings, be sure to preview them on an
<a href="{@docRoot}design/style/metrics-grids.html">LDPI handset</a> in portrait to make sure
they'll fit everywhere.</p>

<h4>Secondary text below is for status, not description&hellip;</h4>

<p>Before Ice Cream Sandwich, we often displayed secondary text below a label to further describe
it or provide instructions. Starting in Ice Cream Sandwich, we're using secondary text for status.
</p>

<div class="layout-content-row">
  <div class="layout-content-col span-4">

    <div class="do-dont-label bad emulate-content-left-padding">Before</div>

    <table class="ui-table bad emulate-content-left-padding">
    <thead>
      <tr>
        <th class="label">
        Screen timeout
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="secondary-text">
        Adjust the delay before the screen automatically turns off
        </td>
      </tr>
    </tbody>
    </table>

  </div>
  <div class="layout-content-col span-4">

    <div class="do-dont-label good">After</div>

    <table class="ui-table good">
    <thead>
      <tr>
        <th class="label">
        Sleep
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="secondary-text">
        After 10 minutes of inactivity
        </td>
      </tr>
    </tbody>
    </table>

  </div>
</div>

<p>Status in secondary text has the following benefits:</p>
<ul>
<li>Users can see at a glance what the current value of a setting is without having to navigate
any further.</li>
<li>It applies the design principle
<a href="{@docRoot}design/get-started/principles.html#keep-it-brief">Keep it brief</a>, which
users greatly appreciate.</li>
</ul>

<h4>&hellip;unless it's a checkbox setting</h4>
<p>There's one important exception to the using secondary text for status: checkbox settings.
Here, use secondary text for description, not status. Status below a checkbox is unnecessary
because the checkbox already indicates it. The reason why it's appropriate to have a description
below a checkbox setting is because&mdash;unlike other controls&mdash;it doesn't display a dialog
or navigate to another screen where additional information can be provided.</p>

<p>That said, if a checkbox setting's label is clear enough on its own, there's no need to also
provide a description. Only include one if necessary.</p>

<p>Follow these guidelines to write checkbox setting descriptions:</p>
<ul>
<li>Keep it to one sentence and don't use ending punctuation.</li>
<li>Convey what happens when the setting is checked, phrased in the form of a command. Example:
"Allow data exchange", not "Allows data exchange".</li>
<li>Avoid repetition by choosing words that don't already appear in the label.</li>
<li>Don't refer to the user unless it's necessary for understanding the setting.</li>
<li>If you must refer to the user, do so in the second person ("you") rather than the first person
("I"). Android speaks to users, not on behalf of them.</li>
</ul>

<h4>Writing examples</h4>

<p>The following are examples of changes we made to labels and secondary text in the Settings app
in Ice Cream Sandwich.</p>

<div class="layout-content-row">
  <div class="layout-content-col span-4">

    <div class="do-dont-label bad emulate-content-left-padding">Before</div>

    <table class="ui-table bad emulate-content-left-padding">
    <thead>
      <tr>
        <th class="label">
        Use tactile feedback
        </th>
      </tr>
    </thead>
    </table>

  </div>
  <div class="layout-content-col span-4">

    <div class="do-dont-label good">After</div>

    <table class="ui-table good">
    <thead>
      <tr>
        <th class="label">
        Vibrate on touch
        </th>
      </tr>
    </thead>
    </table>

  </div>
  <div class="layout-content-col span-5">

<p>In this checkbox setting, we eliminated the throwaway word "Use" and rephrased the label to be
more direct and understandable.</p>

  </div>

</div>

<div class="layout-content-row">
  <div class="layout-content-col span-4">

    <div class="do-dont-label bad emulate-content-left-padding">Before</div>

    <table class="ui-table bad emulate-content-left-padding">
    <thead>
      <tr>
        <th class="label">
        Screen timeout
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="secondary-text">
        Adjust the delay before the screen automatically turns off
        </td>
      </tr>
    </tbody>
    </table>

  </div>
  <div class="layout-content-col span-4">

    <div class="do-dont-label good">After</div>

    <table class="ui-table good">
    <thead>
      <tr>
        <th class="label">
        Sleep
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="secondary-text">
        After 10 minutes of inactivity
        </td>
      </tr>
    </tbody>
    </table>

  </div>
  <div class="layout-content-col span-5">

<p>In this multiple choice setting, we changed the label to a friendlier term and also replaced
the description with status. We put some descriptive words around the selected value, "10
minutes", because on its own, the meaning could be misinterpreted as "sleep for 10 minutes".</p>

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-4">

    <div class="do-dont-label bad emulate-content-left-padding">Before</div>

    <table class="ui-table bad emulate-content-left-padding">
    <thead>
      <tr>
        <th class="label">
        Change screen lock
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="secondary-text">
        Change or disable pattern, PIN, or password security
        </td>
      </tr>
    </tbody>
    </table>

  </div>
  <div class="layout-content-col span-4">

    <div class="do-dont-label good">After</div>

    <table class="ui-table good">
    <thead>
      <tr>
        <th class="label">
        Screen lock
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="secondary-text">
        Pattern
        </td>
      </tr>
    </tbody>
    </table>

  </div>
  <div class="layout-content-col span-5">

<p>This setting navigates to a a sequence of subscreens that allow users to choose a type of
screen lock and then set it up. We eliminated the throwaway word "Change" in the label, and
replaced the description with the current type of screen lock set up by the user. If the user
hasn't set up a screen lock, the secondary text says "None".</p>

  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-4">

    <div class="do-dont-label bad emulate-content-left-padding">Before</div>

    <table class="ui-table bad emulate-content-left-padding">
    <thead>
      <tr>
        <th class="label">
        NFC
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="secondary-text">
        Use Near Field Communication to read and exchange tags
        </td>
      </tr>
    </tbody>
    </table>

  </div>
  <div class="layout-content-col span-4">

    <div class="do-dont-label good">After</div>

    <table class="ui-table good">
    <thead>
      <tr>
        <th class="label">
        NFC
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="secondary-text">
        Allow data exchange when the phone touches another device
        </td>
      </tr>
    </tbody>
    </table>

  </div>
  <div class="layout-content-col span-5">

<p>In this checkbox setting&mdash;although it's technical jargon&mdash;we kept the "NFC" label
because: (1) we couldn't find a clear, concise alternative, and (2) user familiarity with the
acronym is expected to increase dramatically in the next couple of years.</p>
<p>We did, however, rewrite the description. It's far less technical than before and does a better
job of conveying how and why you'd use NFC. We didn't include what the acronym stands for because
it doesn't mean anything to most users and would have taken up a lot of space.</p>

  </div>
</div>



<h2 id="checklist">Checklist</h2>
<ul>
<li><p>Make sure each item in Settings meets the criteria for belonging there.</p></li>
<li><p>If you have more than 7 items, explore ways to group related settings.</p></li>
<li><p>Use design patterns wherever applicable so users don't face a learning curve.</p></li>
<li><p>Choose defaults that are safe, neutral, and fit the majority of users.</p></li>
<li><p>Give each setting a clear, concise label and use secondary text appropriately.</p></li>
</ul>