Monday 27 March 2017

About Intents in Android

 Android application development company

Intents:
Intents are asynchronous message which allow application components to request functionality from other Android components.
The dictionary meaning of Intent is Intention or purpose. So it can be described as the intention to do action.
Android intent is the message that is passed between components such as content providers, activities, broadcast recievers, services etc.
Android Intents are mainly used to:
·                     start a service
·                     dial a phone call
·                     Broadcast a message
·                     Display a list of contacts
·                     Display a web page

The LabeledIntent is the subclass of android.content.Intent class.
An intent can contain data via a Bundle. This data can be used by the receiving component.
In Android the reuse of other application components is a concept known as task. An application can access other Android components to achieve a task.
Starting activities or services:
To start an activity you have to use a method startActivity().This method is defined the Context object which Activity extends.
The following code demonstrates how you can start activity via intent.

Intent i = new Intent (this,Login.class);
startActivity(i);

Activities which are started by other android activities are called sub-activities. To start a service via intents, use the startService(Intent) method call.

Types of Android Intents:
There are two types of Intents in android which are as follows:
·         Implicit Intent
·         Explicit Intent

Implicit Intent:
These Intents do not name a target and the field for the component name is left blank. Implicit Intents are also used to activate components of other activities.
for example-
Intent i= new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.setData(ContactsContracts.CONTENT_URI);
startActivity(i);
Explicit Intent:
Explicit intent going to be connected intenal world of application. Explicit Intent specifies the components. In such case,intent provides the external class to be invoked.
For example-
Intent i= new Intent();
startActivity(this,First.class));
Let's see a simple example of Intent that take from one activity to another activity.
First Activity XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingBottom="@dimen/activity_horizontal_margin"
        android:gravity="center_horizontal"
        android:background="#bcbaba">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?      android:attr/textAppearanceSmall"
                android:text="Email"
                android:id="@+id/textView9"
                android:layout_marginBottom="4dp"
                android:textSize="20sp"
                android:textColor="#ffffff" />
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#fff"
                android:layout_weight="1">
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/imageView3"
                    android:background="@drawable/email_icon"
                    android:layout_gravity="left|center_horizontal" />
                <EditText
                    style="@style/signupEditText"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:inputType="textPersonName"
                    android:ems="10"
                    android:id="@+id/edtEmail"
                    android:layout_centerVertical="true"
                    android:layout_centerHorizontal="true"
                    android:hint="Email"
                    android:gravity="center_vertical"
                    android:paddingTop="5dp"
                    android:paddingBottom="5dp" />
            </LinearLayout>
        </LinearLayout>
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:paddingTop="5dp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Password"
                android:id="@+id/textView10"
                android:layout_marginBottom="4dp"
                android:textSize="20sp"
                android:textColor="#ffffff" />
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#fff"
                android:layout_weight="1" >
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/imageView9"
                    android:background="@drawable/password_icon"
                    android:layout_gravity="left|center_horizontal" />
                <EditText
                    style="@style/signupEditText"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:id="@+id/edtPassword"
                    android:layout_centerVertical="true"
                    android:layout_centerHorizontal="true"
                    android:hint="*******"
                    android:gravity="center_vertical"
                    android:inputType="textPassword"
                    android:paddingTop="5dp"
                    android:paddingBottom="5dp" />
            </LinearLayout>
        </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal">
        </LinearLayout>
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal">
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/btnSignIn"
                android:onClick="onClick"
                android:layout_gravity="center_horizontal"
                android:gravity="center"
                android:background="#fff"
                android:layout_marginTop="25dp"
                android:text="LOGIN"
                android:textColor="#238996"
                android:textSize="18sp" />
        </LinearLayout>
    </LinearLayout>


Second Activity XML:
<?xml version="1.0" encoding="utf-8"?>
<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="com.example.tecorb.eat_we_go.Second"
    android:background="#c5bebe">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Welcome"
        android:id="@+id/textView6"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="195dp"
        android:textStyle="bold"
        android:textSize="30sp"
        android:textColor="#1d1717" />
</RelativeLayout>

First.java
package com.example.tecorb.eat_we_go;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class First extends AppCompatActivity {
    EditText edtEmail,edtPassword;
    Button btnSignIn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        edtEmail = (EditText) findViewById(R.id.edtEmail);
        edtPassword = (EditText) findViewById(R.id.edtPassword);
        btnSignIn=(Button)findViewById(R.id.btnSignIn);
        btnSignIn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent();
                startActivity(new Intent(getApplicationContext(), Second.class));
            }
        });
    }
}
In above example, there are two xml activity in which first is our main and login activity in which we take two edit text for email and password and a login button to submit the data by which on click we reach at the other activity where we take an edit text and show welcome as a text.

With the help of java we write code and by intent we connect two activities as first activity with the second.

No comments:

Post a Comment