Hello Friends,
Welcome you all in the Android tutorial.
Today we are going to
learn “How to communicate between separate Activities”?
We have already developed
the GUI application for an android device.
That application has First_Name
, Last_Name text-field and one send Button.
We are going to use the
same GUI application in today’s session. If you have not created the
application please refer the following link:-
How to develop a Graphical User Interface ( GUI )
How to develop a Graphical User Interface ( GUI )
In today’s topic we will
create another activity which displays the First_Name and Last_Name on the
screen, send by the MainActivity of the GUI application.
Let’s start:-
Step 1: Define a function
that handles the onClick event of the Button
In MainActvity.java
add the following line :-
/* sendData handles the onClick event*/ public void sendData(View view) { }Must have condition for the function that handles the onClick event are :-
·
It must be public
·
It must have a void return type
·
It must have a View as the only parameter.
Step 2: Add the onClick attribute to the Button
android:onClick=”sendData”
sendData is the function which responds to the onClick event. Add onClick attribute on <BUTTON> element in activity_main.xml file.
Step 3: Binding of two Activities
Binding of separate
components can be achieved by the Intent object.
“Intent” provides the run-time
binding between separate components (for example between two activities).
Syntax:-
Intent intent = new Intent (this,
DisplayActivity.class);
Intent
constructor here takes two parameter.
· A Context as the first
parameter. We are passing this because Activity class is a subclass of Context.
· The Class of the application component
to which the system should deliver the Intent.
We should deliver the Intent to
the another activity named as DisplayActivity.
We are going to create this activity later.
We are going to create this activity later.
Step 4: Create a message what you want to pass it to another
activity
We have designed
two Text-Fields in our GUI app.
We will fetch
those data and send it to another activity.
Check the
following code:-
Intent intent = new Intent(this, DisplayActivity.class); EditText editText = (EditText) findViewById(R.id.first_name); String message = editText.getText().toString(); editText = (EditText) findViewById(R.id.last_name); message +="__"+editText.getText().toString();
findViewById() we
are using to find the EditText according to id.
Our modified
MainActivity.java code will look like as follows:-
package com.example.firstgui; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.EditText; public class MainActivity extends Activity { public final static String EXTRA_MESSAGE = "Message from MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } /** Called when the user clicks the Send button */ public void sendData(View view) { // Do something in response to button Intent intent = new Intent(this, DisplayActivity.class); EditText editText = (EditText) findViewById(R.id.first_name); String message = editText.getText().toString(); editText = (EditText) findViewById(R.id.last_name); message += "__"+editText.getText().toString(); message ="Welcome , "+message; intent.putExtra(EXTRA_MESSAGE, message); startActivity(intent); } }
In EXTRA_MESSAGE we are keeping
some constant message.
Our modified activity_main.xml file will look like as follows:-
Our modified activity_main.xml file will look like as follows:-
Step 5: Create the Second Activity
Steps to follow :-
a) File à New à Other à Android à
AndroidActivity
b) Select
BlankActivity, click Next.
c) Select the GUI
Project, “FirstGUI”
d) Activity name “DisplayActivity”
e) Hierarchical
Parent , select the MainActivity of the FirsrGUI app
Step 6: Receive the Intent
We can get the
Intent by calling getIntent() function. We can also retrieve the data contained
within it.
Step 7: Display Message
We are using a
TextView widget to show the received message on the Screen.
Modify the
onCreate() of the DisplayActivity.java , as follow :-
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the message from the intent Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); // Create the text view TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); // Set the text view as the activity layout setContentView(textView); }
No comments:
Post a Comment