What are Explicit Intents in Android? Example of Android Explicit Intent. Explicit Intents in an Android System with an Example.
Explicit Intents in an android application are used to activate specific components of an android application. That means you have to explicitly specify which activity or component you want to activate. So if you wanna activate another activity you use explicit intents to explicitly say “I wanna use that activity.”.
Here’s a simple example showing how
you can create explicit intents. Suppose you have an activity that contains an
EditText and a Button and whenever the button is clicked the text inside the
EditText is passed to the other activity containing a TextView that displays text
that user entered.
For this you need two java files;
one your Main java file i.e. your main activity and other java file say Second.java
i.e. your second activity. Also you have to create a layout for your second
activity. Let’s call it second.xml. Remember you already have a main.xml for
your main activity. Now in main.xml put an EditText
and a Button and in second.xml put a TextView. That’s it for the layouts.
Now in your main activity class
i.e. Main.java inside the onCreate() method after setContentView(), get the
references to the Button and EditText elements like this
Button b = (Button)
findViewById(R.id.button1);
final
EditText et = (EditText) findViewById(R.id.editText1);
Then create an on click listener for your button like this
b.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Intent
intent = new Intent(Main.this, Second.class);
intent.putExtra("message",
et.getText().toString());
startActivity(intent);
}
});
Notice the line
where we create our intent–
Intent intent = new Intent(Main.this,
Second.class);
Here we’re creating an object of Intent class. The two
parameters i.e. Main.this and Second.class, now what are these? Well to
remember, the first parameter is the activity or component that is calling some other activity and the
second parameter is the activity class that is being called. In other words, you
can remember it like “Who is calling what”.
Now we also need to pass the text that user enters in the
text field. To pass extra data with intents we’ve to call the putExtra() method
like below –
intent.putExtra("message",
et.getText().toString());
This method takes two parameters,
first a key and other is the value at that key.Notice, et is our reference to the EditText
and using getText() method we’re retrieving the value that user entered and
next we’re converting it to string using the toString(). And finally we start
the other activity using startActivity() like this –
startActivity(intent);
Now we have to display the text in the TextView in our
second activity i.e. Second.java (or whatever’s the name of your second
activity). So, in Second.java inside the onCreate() method after the setContentView()
method, first we get the reference to the TextView and then
we’ll retrieve the value that user entered from our intent using the key that
we passed earlier and display it inside our TextView like this –
TextView
tv = (TextView) findViewById(R.id.textView1);
tv.setText(getIntent().getExtras().getString("message"));
Now only thing left to do is modifying our AndroidManifet.XML file. We
need to make an entry for our second activity.
<activity android:name=".Second"
/>
Enter the above line in your AndroidManifet.XML file after
the Main activity entry.
This example is as simple as it can get and aimed just to show you how explicit intents can be used to enhance your app.
Note: Here our second activity’s name is Second.java that's why I wrote android:name=".Second". If your activity's name is something else say MySecondActivity you need to write android:name=". MySecondActivity " i.e. name of the class of your activity.