Starting Another Activity
In this tutorial I will be discussing about switching between one activity to another activities.
First Method :-
- In Android Studio, from the
res/layout
directory, edit thecontent_my.xml
file. - Add the
android:id="@+id/button"
attribute to the<Button>
element.<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" />
- In the
java/akraj.snow.test
directory, open theMainActivity.java
file. - add the
<Button>
method, usefindViewById()
to get theButton
element.Button button = (Button) findViewById(R.id.button);
- Add
OnClickListener
method.
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
Second Method:-
- In Android Studio, from the
res/layout
directory, edit thecontent_my.xml
file. - Add the
android:onClick
attribute to the<Button>
element.<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" android:onClick="sendMessage" />
The
android:onClick
attribute’s value,"sendMessage"
, is the name of a method in your activity that the system calls when the user clicks the button. - In the
java/akraj.snow.test
directory, open theMainActivity.java
file. - Within the
MainActivity
class, add thesendMessage()
method stub shown below.
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
// Do something in response to button
}
In order for the system to match this method to the method name given to android:onClick
, the signature must be exactly as shown. Specifically, the method must:
- Be public
- Have a void return value
- Have a
View
as the only parameter (this will be theView
that was clicked)
Next, you’ll fill in this method to read the contents of the text field and deliver that text to another activity.
Build an Intent
In MyActivity.java
, inside the sendMessage()
method, create an Intent
to start an activity called SecondActivity
with the following code:
public void sendMessage(View view) {
Intent intent = new Intent(MainActivity.this, SecondActivity
.class);
startActivity(intent);
}
or
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SecondActivity
.class);
startActivity(intent);
}
});
Create the Second Activity
- In Android Studio, in the
java
directory, select the package, akraj.snow.test, right-click, and select New > Activity > Blank Activity. - In the Choose options window, fill in the activity details:
- Activity Name: SecondActivity
- Layout Name: activity_second
- Title: Second Activity
- Hierarchical Parent: akraj.snow.test.MainActivity
- Package name: akraj.snow.test
Click Finish.
- In your manifest file,
AndroidManifest.xml
, within theApplication
element, add the<activity>
element for yourSecondActivity
class, as follows:<application ... > ... <activity android:name="akraj.snow.test.SecondActivity" android:label="@string/title_activity_second" android:parentActivityName="akraj.snow.test.MainActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="akraj.snow.test.MainActivity" /> </activity> </application>
Complete Code
content_main.xml (res/layout)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="akraj.snow.test.MainActivity"
tools:showIn="@layout/activity_main">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send" />
</LinearLayout>
MainActivity.java (java/akraj.snow.test)
package akraj.snow.test;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
or
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
public void sendMessage(View view) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
...............
.........
}
content_second.xml (res/layout)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="akraj.snow.test.SecondActivity"
tools:showIn="@layout/activity_second">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Second Activity"
android:id="@+id/textView" />
</RelativeLayout>
SecondActivity.java (java/akraj.snow.test)
package akraj.snow.test;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
}
Next Lesson: Sending Data From One Activity to Another Activity
Question 1. What is Activity?
Answer: An Activity
is an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map.
Learn more go to Android’s Activities Page…