In our blog today you will learn to create a new activity from another activity. We have the main activity called as “StartNewActivityActivity.java”. It will call two activities namely “ChildActivity.java” and “second_child.java”. ChildActivity is a simple activity that just displays a message. “second_child” demonstrates the method of passing values to activities by calling another activity “SecondChildResultActivity.java”. The result from “second_child.java” is passed onto SecondChildResultActivity.java. Let us start writing the code
Step 1
Create an Android Project and name it “StartNewActivity”. Select the Android SDK version of your choice. Once the project gets created open the “StartNewActivityActivity.java” and write the code below
package com.akansha.startnewactivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
public class StartNewActivityActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View v = findViewById(R.id.btn1);
v.setOnClickListener(this);
v = findViewById(R.id.btn2);
v.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = null;
switch (v.getId()) {
case R.id.btn1:
Toast.makeText(getApplicationContext(), "Button 1 clicked", 5000);
i= new Intent("android.intent.action.AnotherActivity");
//startActivity(i);
break;
case R.id.btn2:
i= new Intent("android.intent.action.SecondActivity");
//startActivity(i);
break;
default:
return;
}
startActivity(i);
}
}
Update the main.xml files as follows
<?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="125dp" android:layout_height="wrap_content" /> <Button android:id="@+id/btn1" android:layout_width="134dp" android:layout_height="wrap_content" android:text="@string/lblBtn1"/> <Button android:id="@+id/btn2" android:layout_width="134dp" android:layout_height="wrap_content" android:text="@string/lblBtn2"/> </LinearLayout>
Step 2
Create “ChildActivity.java” under src folder and add the following
package com.akansha.startnewactivity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class ChildActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.child_layout);
Button btnClose = (Button) findViewById(R.id.button1);
btnClose.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
//Closing SecondScreen Activity
finish();
}
});
}
}
Step 3
Update the child_Layout.xml with the following
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/lblTxt"
/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Close" />
</LinearLayout>
Step 4
Create and update the second_child.java and second_child.xml
package com.akansha.startnewactivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class second_child extends Activity{
EditText inputName;
EditText inputEmail;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_child);
inputName = (EditText) findViewById(R.id.name);
inputEmail = (EditText) findViewById(R.id.email);
Button btnNextScreen = (Button) findViewById(R.id.btnNextScreen);
//Listening to button event
btnNextScreen.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
//Starting a new Intent
Intent nextScreen = new Intent(getApplicationContext(), SecondChildResultActivity.class);
//Sending data to another Activity
nextScreen.putExtra("name", inputName.getText().toString());
nextScreen.putExtra("email", inputEmail.getText().toString());
// starting new activity
startActivity(nextScreen);
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Name: "/>
<EditText android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Email: "
/>
<EditText android:id="@+id/email"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"/>
<Button android:id="@+id/btnNextScreen"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Send to Next Screen"
android:layout_marginTop="15dip"/>
</LinearLayout>
Step 5
Create and update the SecondChildResultActivity.java and second_child_result.xml
package com.akansha.startnewactivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class SecondChildResultActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_child_result);
TextView txtName = (TextView) findViewById(R.id.txtName);
TextView txtEmail = (TextView) findViewById(R.id.txtEmail);
Button btnClose = (Button) findViewById(R.id.btnClose);
Intent i = getIntent();
// Receiving the Data
String name = i.getStringExtra("name");
String email = i.getStringExtra("email");
// Displaying Received data
txtName.setText(name);
txtEmail.setText(email);
// Binding Click event to Button
btnClose.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
//Closing SecondScreen Activity
finish();
}
});
}
}
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="You Entered..." android:textSize="25dip" android:gravity="center" android:layout_margin="15dip"/> <TextView android:id="@+id/txtName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="15dip" android:textSize="18dip"/> <TextView android:id="@+id/txtEmail" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="15dip" android:textSize="18dip"/> <Button android:id="@+id/btnClose" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="15dip" android:text="Close"/> </LinearLayout>
Step 6
Make sure your Android manifest file looks like the following
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.akansha.startnewactivity"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".StartNewActivityActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ChildActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.AnotherActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".second_child"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.SecondActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".SecondChildResultActivity"
android:label="@string/app_name" >
</activity>
</application>
</manifest>
You are now ready to compile and execute the code. The output will look like the following



