Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Preview
Start a free Courses trial
to watch this video
One way to persist data in Android is by using SharedPreferences. In this video we'll introduce and start implementing SharedPreferences.
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
Now that we know about
the activity lifecycle,
0:00
we can start to learn about
saving data in Android.
0:02
Within Android, there are several
approaches for us to save our data and
0:05
we cover them in detail in another
course on data persistence.
0:09
Of these approaches, the easiest
one to use is shared preferences.
0:13
Shared preferences are used to
store key value pairs for our apps.
0:17
Some typical uses for a shared preference
could be to save a user's name,
0:22
keep track of which theme a user prefers,
or
0:26
to store a counter of how many
times a user has opened our app.
0:28
Let's explore shared preferences
with a new application.
0:33
I'm going to call the app
SharedpreferencesApp and then hit Next.
0:38
Hit Next again, pick Empty Activity,
hit Next and then click Finish.
0:47
In this app, we're going to create
an edit text that saves its value
0:56
even if we completely close the app.
1:00
Let's start by creating an edit text.
1:04
In activity_main.xml,
1:07
which is in the res folder in
the layout directory, let's start
1:09
by getting rid of the Hello World text
view by clicking it and hitting Delete.
1:15
Then let's add a plain text text field to
the top of our app centered horizontally.
1:21
Next, let's click up here to change
the layout width to match parent and
1:30
then scroll down over here
to make sure we have an ID.
1:35
Great!
1:42
Lastly, let's create a field for
1:44
our edit text inside mainactivity.java.
1:47
We'll write private EditText and
we'll call it mEditText.
1:52
Alt Enter to import edit text.
2:02
Then in the bottom of onCreate, we'll type
2:05
mEditText = in parentheses EditText,
findviewbyID,
2:10
and the ID of our edit text,
which is editText.
2:17
Looks good.
2:24
Before we go on to implementing shared
preferences, I'm going to quickly run
2:26
the app so I can showcase a behavior
you wouldn't normally expect.
2:30
Here we have the app.
2:36
I'm going to type in some text and
then rotate the app.
2:38
[SOUND] Knowing that Android destroys and
2:41
recreates activities when they rotate and
2:45
that we didn't implement anything
that would save this value,
2:50
this text should not
persist through a rotation.
2:56
So why did it persist through a rotation?
3:01
It turns out that any views,
text views, buttons, check boxes,
3:03
etc., that have a unique ID would
have their instant state saved and
3:09
restored automatically by Android.
3:14
Cool, but
3:17
if we leave the activity by
hitting the back button and
3:22
then open a new activity or a new instance
of our app, we get an empty edit text.
3:26
We still need to use shared preferences
to persist our data through the activity
3:33
being destroyed.
3:36
Let's start by creating a field for
our shared preferences object.
3:38
At the top of the class, type private
3:43
SharedPreferences and
we'll call it m SharedPreferences.
3:46
Then and on Create, let's initialize
our shared preferences object
3:54
by typing mSharedPreferences
= getSharedPreferences.
4:00
We can see that the first
parameter is a string called Name.
4:08
This will be the name of our
shared preferences file.
4:12
It's usually a good idea to set this
to your package name plus .preferences.
4:16
Just make sure that your
preferences name will be unique
4:22
among all the SharedPreferences out there.
4:25
The second parameter is an integer,
which represents the mode.
4:28
We'll use mode private so
4:33
our shared preferences file can be
accessed by only our application.
4:35
Also, all of the other
modes are deprecated.
4:40
Now that we know what parameters to use,
let's finish creating our object.
4:44
For the first parameter,
type PREFS_FILE in
4:49
all caps to let Android Studio know that
this is a private static final string.
4:56
And then type ,_Context.MODE_PRIVATE for
the mode.
5:03
Next, let's put our cursor back on
PREFS_FILE and hit Alt Enter to have
5:10
Android Studio generate the variable, and
5:15
now we can type in the value
we talked about earlier.
5:20
The package name, which for
5:23
me is
com.teamtreehouse.sharedpreferencesapp and
5:27
ahead.preferences.
5:35
Great, now that we have access
to our shared preferences,
5:38
let's store our string.
5:42
All share preferences objects have
an editor, and we need to use that editor,
5:45
when we want to add any key value
pairs to our shared preferences.
5:50
Let's create a field for
5:55
our shared preferences editor by
going to the top of the class and
5:56
typing private SharedPreferences.Editor
and we'll call it mEditor.
6:00
Then, let's initialize our field and
the bottom of onCreate by typing MEditor
6:11
= mSharedPreferences.edit.
6:18
We're ready to start using this editor but
6:28
let's take a short break and then see how
to use this to save and retrieve data.
6:31
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up