Opening an Activity in a button click in Android
In this article you are going to learn about how to open an activity using Explicit intent.
1.Open Eclipse IDE
2.Click File -> New -> Project -> Android Application Project
3.Enter the name of the application as openactivity and click next
4.Make sure that you have enabled the create project in workspace
5.Design application launcher icon and create a blank activity workspace and click finish
Now you need to design your xml file ,xml file is the layout where we design our User Interface.
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mobileapptechnology.openactivity.MainActivity" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="150dp"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/download"
android:text="" />
</RelativeLayout>
</RelativeLayout>
In the eclipse the activity_main.xml is present under the res/layout/activity_main.xml.
In this layout you have to place a button as shown above, i had placed a image as the background of the button.
After this now you have create a another xml file for the second activity.
so right click on the layout folder and click new and select android xml file ,they layout folder is present under the res folder.name the new xml as secondactivity.xml
String.xml
Normally in Android application whatever the values you are going to give will be provided in a proper manner.
Hardcore values could not be used in the application
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">OpenActivity</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="hai">Hai Friends</string>
</resources>
In this application we set the value for the text view through the string.xml only as shown above.
the string.xml is under the values folder which is under the res folder.
Secondactivity.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#67C1E6"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="150dp" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:textStyle="italic"
android:text="@string/hai" />
</RelativeLayout>
</RelativeLayout>
In this layout i had placed a textview just to represent a text.in textview i mentioned the style ,size and color for it.and i give the gravity as center to place the text in the center of the screen.
MainActivity.java
Now its time to code the MainActivity as shown below
package com.mobileapptechnology.openactivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button but1=(Button)findViewById(R.id.button1);
TextView text=(TextView)findViewById(R.id.textView1);
but1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i= new Intent(getApplicationContext(),SecondActivity.class);
startActivity(i);
}
});
}
}
In MainActivity.java i have initialized the textview and button as shown above,after that am creating a on click event for the button to set the action for the button.
Here is used the explicit intent to open an activity from an activity when a button is clicked.
Here the getApplicationContext() refers the current class that
means it refers the main activity.and the SecondActivity.class file
refers the SecondActivity.java which is mentioned below.Before
coding the MainActivity we have to create a SecondActivity it
means we have to create a new class by right clicking the package
under the src folder and click the new and select the class give the
name as SecondActivity.
SecondActivity.java
package com.mobileapptechnology.openactivity;
import android.app.Activity;
import android.os.Bundle;
public class SecondActivity extends Activity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secondactivity);
}
}
In this SecondActivity we are going to link the secondactivity.xml file with the SecondActivity.java here we just mentioning the layout file .It is highlighted in the above code.
After that you have mention your SecondActivity.java in Manifest file ,Because Each and every activiy which we are newly creating has to be mentioned in Manifest file .Without initializing it the application will be filled with errors.
OpenActivtyManifest.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mobileapptechnology.openactivity"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
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="com.mobileapptechnology.openactivity.SecondActivity"></activity>
</application>
</manifest>
The text which is in bold represent that the SecondActivity is mentioned in the Manifest File.by default the MainActivity is mentioned in Manifest file.
Now its time to run the application,you will get the output in your emulator as shown below .
When you click the button in the UI it will redirect you the SecondActivity as shown below.