You can start another activity within the same application by calling startActivity(), passing it an Intent that describes the activity “class name” you want to start. Alternatively, if the activity to be started has an action name defined within <intent-filter> in the AndroidManifest.xml we can use to call the activity too.
Objectives:
How to call “start” another activity within the same application?How to prepare the Intent object using class name or action name?
Environment & Tools:
Android Developer Tools (ADT) (or Eclipse + ADT plugin)AVD Nexus S Android 4.3 “emulator”Min SDK 8
( 1 ) Create Android Application
File >> New >> Android ApplicationEnter App name: android_start_activity
Pakcage: com.ahkter.android
Keep other defualt selections, go Next till you reach Finish
( 2 ) Two Layouts for Two Activities
Define the layout for the first “main” activity and the second “another” activity to be started.
*res/layout/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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/btnStartAnotherActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_marginTop="26dp"
android:layout_centerHorizontal="true"
android:text="Start Another Activity" />
</RelativeLayout>
*res/layout/activity_another.xml
<?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/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Another Activity"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
( 3 ) Two Activity Classes
src/com/ahkter/android/ActivityMain.javaMainActivity.java is a simple activity class implementing OnClickListener to handle button click event.When user click on the button we call onClickWithin the onClick method we create the intent object and pass it to startActivity(intent) method
package com.ahkter.android;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
Button btnStartAnotherActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnStartAnotherActivity = (Button) findViewById(R.id.btnStartAnotherActivity);
btnStartAnotherActivity.setOnClickListener(this);
}
@Override
public void onClick(View view) {
Intent inent = new Intent(this, AnotherActivity.class);
// calling an activity using <intent-filter> action name
// Intent inent = new Intent("com.ahkter.android.ANOTHER_ACTIVITY");
startActivity(inent);
}
}
* src/com/ahkter/android/AnotherActivity.javaAnotherActivity.java is the activity we want to start. It has one text view saying “Another Activity”.
package com.ahkter.android;
import android.app.Activity;
import android.os.Bundle;
public class AnotherActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_another);
}
}
( 4 ) Define Activities in the Manifest XML File
All activity should be defined with in the manifest.xml fileAndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ahkter.android"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.ahkter.android.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.ahkter.android.AnotherActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.ahkter.android.ANOTHER_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
Source : http://hmkcode.com/android-start-another-activity-within-the-same-application/
Tags:
Android App Making