This course will be retired on July 14, 2025.
Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
- Getting Text from an EditText 8:21
- Getting Text from an EditText 1 objective
- Adding a Second Activity 1:57
- Introducing Intents 2:23
- Starting a New Activity 2 objectives
- Sending Data to a New Activity 2:53
- Putting Data in an Intent 1 objective
- Getting Data from an Intent 3:06
- Getting Data from an Intent 2 objectives
- Investigating a NullPointerException 3:21
- Introducing String Resources 2:41
- Getting Resources from the Context 4:20
- Using String Resources 3 objectives
Preview
Video Player
00:00
00:00
00:00
- 2x 2x
- 1.75x 1.75x
- 1.5x 1.5x
- 1.25x 1.25x
- 1.1x 1.1x
- 1x 1x
- 0.75x 0.75x
- 0.5x 0.5x
Once we create some string resources in strings.xml, we need to then access them in our app using the Context.
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
Let's go back to MainActivity.java,
and now to get the string value
0:00
from the strings.xml file,
we need to reference it through its name.
0:04
Just like when we reference elements
in the layout through their IDs.
0:07
Let's take a brief look at
the Android documentation.
0:11
This section talks about how to access
string and other types of resources.
0:14
If we scroll down a little bit
we can see an example of how to
0:18
access a string in code with
the ID r.string.hello, or
0:21
in XML with @string/ and
then the string name that we provided.
0:26
This next section is called
accessing resources in code.
0:30
This has an example,
with a nice little shortcut, but
0:33
I wanna highlight this line here.
0:35
You can also retrieve individual
resources using methods in Resources,
0:37
which you can get an instance
of with getResources.
0:42
So there is a special
Resources object we can use
0:45
to access all the resources we create and
wrap up in our app, very cool.
0:48
Let's use this resources object.
0:52
And also use the shortcut
shown in this example.
0:53
The resource's object is available
to us anywhere in our app,
0:56
if we have access to the current context.
0:59
Do you remember what the context
is inside of an activity?
1:01
How do we access the current context here?
1:04
That's right, all activities
are a subclass of the context class.
1:07
So we can always access the context
directly in an activity.
1:11
Let's spell this out with the variables,
1:15
although we could put this all
on one line if we'd prefer.
1:16
You can clean your code up after
this explanation if you'd like.
1:18
So here in our startStory method,
before we try and use the key name,
1:21
let's add a new Resources
variable named resources, and
1:26
we can set it with a method
from the context class.
1:31
Thanks to inheritance that means we
can just type it here getResources and
1:34
sure enough it returns
a resources variable.
1:38
Next let's add a string variable to
hold our key name String key = and
1:41
now we can set this from
the Resources instance resources..
1:45
And then an auto-complete,
let's see there's a getString method and
1:49
it takes an id as a parameter.
1:53
So here we can type R., and
1:55
then notice these are all the different
types of resources we can provide.
1:57
We want a string,
2:01
and then from there we can select
the new name that we enter key_name.
2:02
Lastly, before we forget,
2:07
we want to change the hard coded key
here to use our new key variable.
2:08
Now let's do the same thing
in StoryActivity.java.
2:12
Only this time we'll use a shortcut
available from the activity class.
2:16
So once again we can delete
the hard coded key name here,
2:20
and we can call directly getString() and
pass in an ID R.string.key_name.
2:25
So this method is an additional activity
method that goes through the given
2:32
resources object and
2:36
lets us access resources using
the ID just like we did before.
2:38
All right, let's run this and
make sure that it works.
2:41
Okay so if we add our name, start our
adventure, we should see it in the log.
2:45
I'll bring it up here.
2:50
And here we go,
here's the name that we just entered.
2:52
Okay, there's one more thing I wanna
do before we wrap up this video.
2:54
So remember in our layouts before,
we had a couple of warnings that we were
2:58
ignoring, that's because I wanted to
use string resources to fix them.
3:01
So here,
if we go back to the main layout, and
3:05
it's easier to see here in the XML view.
3:07
So first one is the content description.
3:09
And we can now use a quick fix to pull
this hard coded string directly into
3:11
a string resource.
3:16
If we hit alt + Enter to do a quick
fix anywhere in the hard coded string
3:18
we can select Extract string resource.
3:22
It does everything for
us pretty much automatically.
3:25
It gives us a default resource name,
3:27
it gives us the value directly
from the hard coded string and
3:29
we're gonna leave the source set alone as
main and the file name as strings.xml.
3:32
And you can see it's going to
create it in the values directory,
3:37
just like we already have it, so click OK.
3:40
It replaces it here.
3:42
This is how we access it in XML,
@string/ and then the string name.
3:43
And then if we go to strings.xml,
3:48
we can see we have a new
extracted string resource, cool.
3:49
So as a challenge for you, go through
the rest of your layout files, and
3:53
extract all the other warnings
into new string resources.
3:56
Okay so
we're off to a great start with this app.
4:00
We've introduced multiple activities, and
4:02
now we know how to pass data from
one to another using an intent.
4:04
Next step we will build the story part of
our app following a really common software
4:07
design pattern, known as
Model View Presenter or MVP for short.
4:11
It's pretty awesome, so
make sure you're ready for
4:15
the fun before going on the next section.
4:18
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