How to create multiple activities in android? Example of multiple activities in android.
Any android application usually is a collection of more than one activities to serve different functionality in your android application. To create multiple activities in your android app you'll have to do following three things each time you create a new activity -
Lets understand all three steps that I just mentioned in detail-
Replace “YourSecondActivityClassName” with your activity’s class name. Don’t remove the “.” before your class name.
- Create a layout file (xml file).
- Create a java file.
- Make an entry in AndroidManifest.XML file regarding this new activity.
Lets understand all three steps that I just mentioned in detail-
Creating a layout file –
First create a new xml file. When you open your xml file in eclipse you’ll see a bunch of UI elements that you can drag and drop to create an UI according to your need.Creating new java file –
Now create a new class in the src folder inside your package along with your main activity java file. There are couple of things that you need to do with every new activity that you create. First you have to extend Activity class so that your activity will have all basic properties and functionalities of an activity (you can extend different classes for other operations like list etc but for basic operations Activity class would be enough). Second, you have to create an override for the OnCreate () method. This method runs when your activity is launched or created (There are other methods like onStart() etc that serve different purposes). For now you can place your code in the OnCreate () method that you just created. One more thing you need to do before you start to add your code is that you have to tell that android system which layout to use for this activity. To do this you need to call setContentView() method which takes one parameter specifying the id of your layout for this activity. Remember android system assigns default id’s to every resource. So say your layout’s id is second so you’ve to call the setContentView () like this –
setContentView (R.layout.second);
Note: If you don’t set the content view, your app will run successfully but you won’t be able to see the contents of the second activity because its content view isn’t set yet.
Creating an entry in AndroidManifest.XML –
Last thing you need to do is to make an entry for this activity in the manifest file. This part is like registering your activity with your app. For simple activities you’ll just need to add the following line –
<activity android:name="”.YourSecondActivityClassName”">.
Replace “YourSecondActivityClassName” with your activity’s class name. Don’t remove the “.” before your class name.
Here’s a simple example showing how you can create multiple activities in your android application. 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.
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’re creating 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. 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, 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 in 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. Note that here our second activity’s name is Second
that why I wrote android:name=".Second".
If your activity name is
something else say MySecondActivity you’ll have to write
android:name=". MySecondActivity
"
Now your app should be ready. Launch it and see the result. Remember this is just a basic example to get you acquainted with the process of having multiple activities in your android application. Try some complex examples by yourself.