Monday, December 2, 2013

How to start an activity and pass data to second screen: Android tutorial


This post will try to cover how to start a second activity from main activity on button click and pass data.
I will assume that you have 2 activities and 2 xml files (one for each activity).
First activity has one button, on clicking which we will start the second activity by using explicit intent. While starting the second activity we will use putExtra() method to pass the data to second activity.
Once second activity is started, the data passed from first activity will be displayed in second activity as toast messages.
Second activity has a button, on clicking which we will close second activity by using finish() method.

First screen                                                                  Second screen






First Activity

package com.techpalle.b15_startactivity;

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;
import android.widget.Toast;

public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  Button b = (Button) findViewById(R.id.button1);
  b.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent in = new Intent(getApplicationContext(),
      SecondaryScreen.class);
    in.putExtra("uid", "satish");
    startActivity(in);
   }
  });
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

}

xml layout file for First Activity 
File name: 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/button1"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_below="@+id/textView1"  
     android:layout_marginTop="58dp"  
     android:layout_toRightOf="@+id/textView1"  
     android:text="Start" />  
 </RelativeLayout>  


Second Activity
package com.techpalle.b15_startactivity;

import java.io.Closeable;

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.Toast;

public class SecondaryScreen extends Activity {

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.second);
     Intent in = getIntent();
     String action = in.getAction();
     Bundle bnd = in.getExtras();
     String uid = bnd.getString("uid");
     Toast.makeText(this, "uid is.."+uid+"..action.."+action, 0).show();
     Button b = (Button) findViewById(R.id.button1);
     b.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {
    finish();
   }
  });
     // TODO Auto-generated method stub
 }

}

xml layout file for Second Activity 
File name: second.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="wrap_content"  
     android:layout_height="wrap_content"  
     android:text="Welcome second.."  
     android:textAppearance="?android:attr/textAppearanceLarge" />  
   <Button  
     android:id="@+id/button1"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:text="Go Back" />  
 </LinearLayout>  

Tags : android, startactivity, putextras, pass data between activities, start second activity, android tutorial

Download complete code : Click to download

Android interview questions on this topic:
android activity interview questions and answers

Similar basic activity programs:
changing edittext text from button click listener 
Simple calculator program to add and subtract 2 numbers 
How to start an activity from main activity on clicking button, and pass data 
Starting second activity based on login and password details 
Getting results from child activity

No comments:

Post a Comment