Tuesday, December 3, 2013

How to start an activity from main activity on clicking button, and pass data: Android tutorial

Program description:

Simple android program with 2 activities. First activity will have a button to start second activity. This is done by using explicit intent.
Along with intent we will pass some data "uid" (user id) to second activity.

Once second activity is started, it takes the data passed from first activity and displays in toast message. Second activity will have a button , on clicking it second activity will be destroyed.


               First Activity                                                Second Activity




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);
  Intent in = getIntent();
  String action = in.getAction();
  Toast.makeText(this, "action.."+action, 0).show();
  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) {
    // TODO Auto-generated method stub
    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>  



For complete code, use below link to download it..
https://drive.google.com/file/d/0BzRRGL2xSFLGWnhtaVBkTjJMclk/edit?usp=sharing

Tags: startactivity, pass data between activities, getintent, android tutorial

android activity interview questions and answers

No comments:

Post a Comment