0% found this document useful (0 votes)
29 views50 pages

Mobile Development - MAYANK

The document is a practical file for a Mobile Application Development course. It includes details like the course name and code, program, year, semester, student name and admission details. It also contains an index listing 13 experiments conducted as part of the course, with details of the execution and submission dates for each experiment. The experiments include developing simple "Hello World" applications, demonstrating different layouts, using AsyncTask, connectivity to SQLite databases, using graphics, fragments and connecting to external databases using APIs.

Uploaded by

Pritam Sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views50 pages

Mobile Development - MAYANK

The document is a practical file for a Mobile Application Development course. It includes details like the course name and code, program, year, semester, student name and admission details. It also contains an index listing 13 experiments conducted as part of the course, with details of the execution and submission dates for each experiment. The experiments include developing simple "Hello World" applications, demonstrating different layouts, using AsyncTask, connectivity to SQLite databases, using graphics, fragments and connecting to external databases using APIs.

Uploaded by

Pritam Sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 50

SCHOOL OF COMPUTING SCIENCE AND ENGINEERING

PRACTICAL FILE

 COURSE NAME: MOBILE APPLICATION DEVELOPMENT (INFOSYS)

 COURSE CODE: BCAC3102

 PROGRAM: (BCA+MCA)

 YEAR: 3rd

 SEMESTER: 5th

 SESSION: 2021-22

Name: Mayank Raj Section: BCA- 3

Admission No. : 19SCSE1110002 Submitted to:


Enrollment No. : 19041110002 Mr.Sameen
INDEX

S.NO Name of the Experiment DATE OF SUBMISSION SIGNATURE


EXECUTION DATE

1. Develop “Hello World” application and execute it in Android


Emulator. 20/07/2021 27/07/2021

2. Develop “Hello World” application and execute it in Android


Emulator. 03/08/2021 05/08/2021

3. Develop an application to demonstrate the difference between


different layouts. 10/08/2021 12/08/2021

4. Develop an application to demonstrate how AsyncTask works.


17/08/2021 19/08/2021

5. Develop an application to demonstrate multi-threaded application.


24/08/2021 26/08/2021

6. Develop an application to demonstrate the connectivity with SQLIte


database. 31/08/2021 02/09/2021

7. Develop an application to demonstrate the use of graphics.


07/09/2021 09/09/2021

8. Develop an application to show how to draw figures using Canvas.


21/09/2021 23/09/2021

9 Develop an application to demonstrate how to use Service and


gather data from any sensor. 28/09/2021 30/09/2021

10 Develop an application to demonstrate the usage of Google Maps in


the application. 05/10/2021 07/10/2021

11 Develop an application to demonstrate the use of Fragments.


12/10/2021 26/10/2021

12 Develop an application and connect it with external database using


APIs. 26/10/2021 28/10/2021

13 Program implemented in LMS test that uses toast, gravity in xml file,
intents for connectivity of pages. 08/11/2021 10/11/2021
Experiment No. 1
Aim :-

Develop “Hello World” application and execute it in Android Emulator.

Source Codes

activity_main.xml:-

<?xml version="1.0" encoding="utf-8"?>


<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

mainactivity.java:-

package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Output:-
Experiment No. 2
Aim :-

Develop an application to show the activity life-cycle of Android app.

Source Codes

activity_main.xml:-

package com.example.lifecycle;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("lifecycle","onCreate is working");
}
@Override
protected void onStart() {
super.onStart();
Log.d("lifecycle","onStart is called");
}
@Override
protected void onResume() {
super.onResume();
Log.d("lifecycle","onResume invoked");
}
@Override
protected void onPause() {
super.onPause();
Log.d("lifecycle","onPause is done");
}
@Override
protected void onStop() {
super.onStop();
Log.d("lifecycle","onStop is invoked");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("lifecycle","onRestart invoked");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("lifecycle","onDestroy invoked");
}
}

mainactivity.java:-

<?xml version="1.0" encoding="utf-8"?>


<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
Output:-
The logcat window can show all the invoked functions.
Outputs:-
Linear Layout ConstraintLayout Relative Layout
Experiment No. 4
Aim :-

Develop an application to demonstrate how AsyncTask works

Source Codes

activity_main.xml:-

<?xml version = "1.0" encoding = "utf-8"?>


<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:tools = "http://schemas.android.com/tools"
android:id = "@+id/rootview"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation = "vertical"
android:background = "#c1c1c1"
android:gravity = "center_horizontal"
tools:context = ".MainActivity">
<Button
android:id = "@+id/asyncTask"
android:text = "Download"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"/>
<ImageView
android:id = "@+id/image"
android:layout_width = "300dp"
android:layout_height = "300dp" />
</LinearLayout>

mainactivity.java:-

package com.example.asynctask;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
URL ImageUrl = null;
InputStream is = null;
Bitmap bmImg = null;
ImageView imageView= null;
ProgressDialog p;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=findViewById(R.id.asyncTask);
imageView=findViewById(R.id.image);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AsyncTaskExample asyncTask=new AsyncTaskExample();
asyncTask.execute("https://c4.wallpaperflare.com/wallpaper/506/947/821/soccer-cristiano-ronaldo-
lionel-messi-neymar-wallpaper-preview.jpg");
}
});
}
private class AsyncTaskExample extends AsyncTask<String, String, Bitmap> {
@Override
protected void onPreExecute() {
super.onPreExecute();
p = new ProgressDialog(MainActivity.this);
p.setMessage("Please wait...It is downloading");
p.setIndeterminate(false);
p.setCancelable(false);
p.show();
}
@Override
protected Bitmap doInBackground(String... strings) {
try {
ImageUrl = new URL(strings[0]);
HttpURLConnection conn = (HttpURLConnection) ImageUrl.openConnection();
conn.setDoInput(true);
conn.connect();
is = conn.getInputStream();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
bmImg = BitmapFactory.decodeStream(is, null, options);
} catch (IOException e) {
e.printStackTrace();
}
return bmImg;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
if(imageView!=null) {
p.hide();
imageView.setImageBitmap(bitmap);
}else {
p.show();
}
}
}
}

Androidmanifest.xml:-

<?xml version="1.0" encoding="utf-8"?>


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.asynctask">
<uses-permission android:name = "android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Asynctask">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />


</intent-filter>
</activity>
</application>

</manifest>
Output

Before downloading After downloading


Experiment No. 5
Aim :-

Develop an application to demonstrate multi-threaded application

Source Codes

activity_main.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" >

<ImageView
android:id="@+id/imageView"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_margin="50dp"
android:layout_gravity="center" />

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_gravity="center"
android:text="Load Image 1" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_gravity="center"
android:text="Load image 2" />

</LinearLayout>
mainactivity.java:-

package com.example.multithreading;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity
{
ImageView img;
Button bt1,bt2;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

bt1 = (Button)findViewById(R.id.button);
bt2= (Button) findViewById(R.id.button2);
img = (ImageView)findViewById(R.id.imageView);

bt1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
new Thread(new Runnable()
{
@Override
public void run()
{
img.post(new Runnable()
{
@Override
public void run()
{
img.setImageResource(R.drawable.messifcb);
}
});
}
}).start();
}
});

bt2.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
new Thread(new Runnable()
{
@Override
public void run()
{
img.post(new Runnable()
{
@Override
public void run()
{
img.setImageResource(R.drawable.messipng);
}
});
}
}).start();
}
});
}
}

Output:-
Experiment No. 6
Aim :-

Develop an application to demonstrate the connectivity with SQLIte database.

Source Codes

activity_main.xml:-

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
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:orientation="vertical"
tools:context=".MainActivity">

<!--Edit text to enter course name-->


<EditText
android:id="@+id/Name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="Enter Your Name" />

<!--edit text to enter course duration-->


<EditText
android:id="@+id/adno"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="Enter Your Admission Number" />

<!--edit text to display course tracks-->


<EditText
android:id="@+id/enroll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="Enter Your Enrollment Number" />

<!--edit text for course description-->


<EditText
android:id="@+id/program"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="Enter Your Program" />

<!--button for adding new course-->


<Button
android:id="@+id/add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="Add Student"
android:textAllCaps="false" />

</LinearLayout>

mainactivity.java:-

package com.example.mainsql;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {


private EditText NameStudent, adno, enrol, prog;
private Button addstudent;
private DBHandler dbHandler;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NameStudent = findViewById(R.id.Name);
adno = findViewById(R.id.adno);
enrol = findViewById(R.id.enroll);
prog = findViewById(R.id.program);
addstudent = findViewById(R.id.add);
dbHandler = new DBHandler(MainActivity.this);
addstudent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String NameSt = NameStudent.getText().toString();
String StuAd = adno.getText().toString();
String StuEn = enrol.getText().toString();
String StuProg = prog.getText().toString();
if (NameSt.isEmpty() && StuAd.isEmpty() && StuEn.isEmpty() && StuProg.isEmpty()) {
Toast.makeText(MainActivity.this, "Please enter all the data..", Toast.LENGTH_SHORT).show();
return;
}
dbHandler.addNewCourse(NameSt,StuAd,StuEn,StuProg);
Toast.makeText(MainActivity.this, "Student added successfully", Toast.LENGTH_SHORT).show();
NameStudent.setText("");
enrol.setText("");
adno.setText("");
prog.setText("");
}
});
}
}

DBhandler.java:-

package com.example.mainsql;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHandler extends SQLiteOpenHelper {


private static final String DB_NAME = "Student_db1";
private static final int DB_VERSION = 1;
private static final String TABLE_NAME = "Student_Table";
private static final String Student_id = "ID";
private static final String Student_name = "STUDENT";
private static final String Student_Adno = "ADMISSION_NUMBER";
private static final String Student_enno = "ENROLLMENT_NUMBER";
private static final String student_prog = "PROGRAM";
public DBHandler(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String query = "CREATE TABLE " + TABLE_NAME + " ("
+ Student_id + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ Student_name + " TEXT,"
+ Student_Adno + " TEXT,"
+ Student_enno + " TEXT,"
+ student_prog + " TEXT)";
db.execSQL(query);
}
public void addNewCourse(String studentName, String studentad, String studenten, String studentprog) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(Student_name, studentName);
values.put(Student_Adno, studentad);
values.put(Student_enno, studenten);
values.put(student_prog, studentprog);
db.insert(TABLE_NAME,null, values);
db.close();
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}

Output:-
After running some query:-
Experiment No. 7
Aim :-

Develop an application to demonstrate the use of graphics.

Source Codes

activity_main.xml:-

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:background="@drawable/box" />

<ImageView
android:layout_marginTop="@android:dimen/app_icon_size"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="@drawable/circle" />

</LinearLayout>

Circle.xml:-

<?xml version="1.0" encoding="utf-8"?>


<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="@color/teal_700"/>
</shape>
</item>
</selector>
Box.xml:-

<?xml version="1.0" encoding="utf-8"?>


<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/teal_700"/>
</shape>
</item>
</selector>

mainactivity.java:-

package com.example.mainsql;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
package com.example.helpdraw;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Output:-
Experiment No. 8
Aim :-

Develop an application to show how to draw figures using Canvas

Source Codes

activity_main.xml:-

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView" />
</LinearLayout>

mainactivity.java:-

package com.example.picturecanvas;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {


Bitmap bg;
ImageView img;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bg= Bitmap.createBitmap(720,1280,Bitmap.Config.RGB_565);
img=findViewById(R.id.imageView);
img.setImageBitmap(bg);
Canvas canvas=new Canvas(bg);
Paint paint=new Paint();
paint.setColor(Color.RED);
paint.setTextSize(50);

canvas.drawText("Rectangle",420,150,paint);
canvas.drawRect(400,200,650,700,paint);

canvas.drawText("Circle",120,150,paint);
canvas.drawCircle(200,350,150,paint);

canvas.drawText("Square",120,800,paint);
canvas.drawRect(50,850,350,1150,paint);

canvas.drawText("Line",480,800,paint);
canvas.drawLine(520,850,520,1150,paint);

}
}
Experiment No. 9
Aim :-

Develop an application to demonstrate how to use Service and gather data from any sensor.

Source Codes

activity_main.xml:-

<?xml version="1.0" encoding="utf-8"?>


<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

mainactivity.java:-

package com.example.readingsensor;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorEventListener2;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private TextView textView;
private SensorManager sensorManager;
private Sensor gyroSensor;
private boolean isGyroAvailable;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textView=findViewById(R.id.textView);
sensorManager=(SensorManager) getSystemService(Context.SENSOR_SERVICE);
if(sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE)!=null)
{
gyroSensor=sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
isGyroAvailable = true;
}
else
{
textView.setText("NO SENSOR");
isGyroAvailable = false;
}
}

@Override
public void onSensorChanged(SensorEvent sensorEvent) {
textView.setText("Gyro Sensor Reading = "+sensorEvent.values[0]);

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {

@Override
protected void onPostResume() {
super.onPostResume();
if (isGyroAvailable) {
sensorManager.registerListener(this,gyroSensor,sensorManager.SENSOR_DELAY_NORMAL);
}
}

@Override
protected void onPause() {
super.onPause();
if(isGyroAvailable){
sensorManager.unregisterListener(this);
}
}
}

Outputs:-
Experiment No. 10
Aim :-

Develop an application to demonstrate the usage of Google Maps in the application.

Source Codes

activity_main.xml:-

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
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:orientation="vertical"
android:padding="16dp"
android:gravity="center_horizontal"
tools:context=".MainActivity">

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_source"
android:hint="Enter source Location"
android:padding="12dp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_destination"
android:hint="Enter destination Location"
android:layout_marginTop="8dp"
android:padding="12dp"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/track"
android:text="display track"
android:layout_marginTop="16dp"/>

</LinearLayout>
mainactivity.java:-

package com.example.test;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {


EditText etSource, etDestination;
Button btTracks;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etSource = findViewById(R.id.et_source);
etDestination = findViewById(R.id.et_destination);
btTracks = findViewById(R.id.track);
btTracks.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String sSource = etSource.getText().toString().trim();
String sDestination = etDestination.getText().toString().trim();
if (sSource.equals("") && sDestination.equals("")) {
Toast.makeText(getApplicationContext(), "Enter both location", Toast.LENGTH_SHORT).show();
} else {
DisplayTrack(sSource, sDestination);
}
}
});
}

private void DisplayTrack(String sSource, String sDestination) {


try {
Uri uri=Uri.parse("http://www.google.co.in/maps/dir/"+ sSource +"/"+ sDestination);
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
intent.setPackage("com.google.android.apps.maps");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}catch(ActivityNotFoundException e){
Uri uri=Uri.parse("http://play.google.com/store/apps/details?id=com.google.android.apps.maps");
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
intent.setPackage("com.google.android.app.maps");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}

}
}

Outputs:-
Experiment No. 11
Aim :-

Develop an application to demonstrate the use of Fragments.

Source Codes

activity_main.xml:-

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F5F6F8"
android:orientation="vertical"
tools:context=".MainActivity">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<Button
android:id="@+id/btnFirst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:marqueeRepeatLimit="marquee_forever"
android:text="FIRST"
app:backgroundTint="#9A2929" />

<Button
android:id="@+id/btnSecond"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:marqueeRepeatLimit="marquee_forever"
android:text="SECOND"
app:backgroundTint="#FF9800" />

</LinearLayout>

<LinearLayout
android:id="@+id/linearlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"></LinearLayout>
</LinearLayout>'

mainactivity.java:-

package com.example.fragments;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentTransaction;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

import com.example.fragments.Fragments.FirstFragment;
import com.example.fragments.Fragments.SecondFragment;

public class MainActivity extends AppCompatActivity {

Button btnFirst,btnSecond;
LinearLayout linearLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnFirst=findViewById(R.id.btnFirst);
btnSecond=findViewById(R.id.btnSecond);
linearLayout=findViewById(R.id.linearlayout);
btnFirst.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FirstFragment firstFragment= new FirstFragment();
FragmentTransaction transaction=getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.linearlayout,firstFragment);
transaction.commit();
}
});
btnSecond.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SecondFragment secondFragment= new SecondFragment();
FragmentTransaction transaction=getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.linearlayout,secondFragment);
transaction.commit();
}
});
}
}

Fragment_first.xml:-

<?xml version="1.0" encoding="utf-8"?>


<FrameLayout 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=".Fragments.FirstFragment">

<!-- TODO: Update blank fragment layout -->


<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFEB3B"
android:text="First Fragment is active"
android:textSize="34sp" />

</FrameLayout>

Fragment_second.xml:-

<?xml version="1.0" encoding="utf-8"?>


<FrameLayout 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=".Fragments.SecondFragment">

<!-- TODO: Update blank fragment layout -->


<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00BCD4"
android:text="Second Fragment is active"
android:textSize="34sp" />

</FrameLayout>
FirstFragment.java:-

package com.example.fragments.Fragments;

import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.fragments.R;

public class FirstFragment extends Fragment {

public FirstFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_first, container, false);

return view;
}
}

SecondFragment.java:-

package com.example.fragments.Fragments;

import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.fragments.R;

public class SecondFragment extends Fragment {

public SecondFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view= inflater.inflate(R.layout.fragment_second, container, false);

return view;
}
}

Outputs:-

When first button is Clicked


When second button is Clicked
Experiment No. 12
Aim :-

Develop an application and connect it with external database using APIs

Source Codes

activity_main.xml:-

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<EditText
android:id="@+id/name"
android:hint="PLEASE ENTER NAME"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

<Button
android:id="@+id/Query_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="GET ADDRESS" />

<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="" />

</LinearLayout>
mainactivity.java:-

package com.example.api;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

public EditText name;


public Button query_button;
public TextView result_address;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name=findViewById(R.id.name);
query_button=findViewById(R.id.Query_button);
result_address=findViewById(R.id.result);
query_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseAccess databaseAccess=DatabaseAccess.getInstance(getApplicationContext());
databaseAccess.open();
String n=name.getText().toString();
String address=databaseAccess.getAddress(n);
result_address.setText(address);
databaseAccess.close();
}
});
}
}

DatabaseOpenHelper.java:-

package com.example.api;

import android.content.Context;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

public class DatabaseOpenHelper extends SQLiteAssetHelper {


private static final String DATABASE_NAME ="MyExternalDatabase.db";
private static final int DATABASE_VERSION=1;
public DatabaseOpenHelper(Context context){
super(context,DATABASE_NAME,null, DATABASE_VERSION);
}
}

DatabaseAccess.java:-

package com.example.api;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseAccess {


private SQLiteOpenHelper openHelper;
private SQLiteDatabase db;
private static DatabaseAccess instance;
Cursor c=null;
private DatabaseAccess (Context context){
this.openHelper=new DatabaseOpenHelper(context);
}
public static DatabaseAccess getInstance(Context context){
if(instance==null){
instance=new DatabaseAccess(context);
}
return instance;
}
public void open(){
this.db=openHelper.getWritableDatabase();
}
public void close(){
if(db!=null){
this.db.close();
}
}
public String getAddress(String name){
c=db.rawQuery("select Address from Table1 where Name ='"+name+"'",new String[]{});
StringBuffer buffer=new StringBuffer();
while(c.moveToNext()){
String address= c.getString(0);
buffer.append(""+address);
}
return buffer.toString();
}
}
Outputs:-
Experiment No. 13
Aim :-

Program implemented in LMS test that uses toast, gravity in xml file, intents for connectivity of pages.

Source Codes

activity_main.xml:-

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Register"
android:background="@drawable/background">

<EditText
android:id="@+id/et1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="116dp"
android:layout_marginLeft="137dp"
android:layout_marginTop="45dp"
android:layout_marginEnd="139dp"
android:layout_marginRight="139dp"
android:hint="Enter Username" />

<EditText
android:id="@+id/et2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/et1"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="116dp"
android:layout_marginLeft="137dp"
android:layout_marginTop="43dp"
android:layout_marginEnd="141dp"
android:layout_marginRight="141dp"
android:hint="Enter Password" />

<EditText
android:id="@+id/et3"
android:layout_width="157dp"
android:layout_height="wrap_content"
android:layout_below="@+id/et2"
android:layout_centerHorizontal="true"
android:layout_marginTop="44dp"
android:hint="Retype Password" />

<Button
android:layout_width="133dp"
android:layout_height="wrap_content"
android:layout_below="@+id/et2"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="140dp"
android:layout_marginLeft="140dp"
android:layout_marginTop="118dp"
android:layout_marginEnd="138dp"
android:layout_marginRight="138dp"
android:text="Confirm"
android:id="@+id/button1"/>

<Button
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:text="Back"/>

</RelativeLayout>
Activity_register.xml:-

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Register"
android:background="@drawable/background">

<EditText
android:id="@+id/et1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="116dp"
android:layout_marginLeft="137dp"
android:layout_marginTop="45dp"
android:layout_marginEnd="139dp"
android:layout_marginRight="139dp"
android:hint="Enter Username" />

<EditText
android:id="@+id/et2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/et1"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="116dp"
android:layout_marginLeft="137dp"
android:layout_marginTop="43dp"
android:layout_marginEnd="141dp"
android:layout_marginRight="141dp"
android:hint="Enter Password" />

<EditText
android:id="@+id/et3"
android:layout_width="157dp"
android:layout_height="wrap_content"
android:layout_below="@+id/et2"
android:layout_centerHorizontal="true"
android:layout_marginTop="44dp"
android:hint="Retype Password" />

<Button
android:layout_width="133dp"
android:layout_height="wrap_content"
android:layout_below="@+id/et2"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="140dp"
android:layout_marginLeft="140dp"
android:layout_marginTop="118dp"
android:layout_marginEnd="138dp"
android:layout_marginRight="138dp"
android:text="Confirm"
android:id="@+id/button1"/>

<Button
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:text="Back"/>

</RelativeLayout>

Activity_mainapp.xml:-

<?xml version="1.0" encoding="utf-8"?>


<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".mainapp"
android:background="@drawable/background">

<TextView
android:id="@+id/textView"
android:layout_width="135dp"
android:layout_height="21dp"
android:text="YOU ARE LOGGED IN"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

Login.java:-

package com.example.loginregister;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.media.MediaTimestamp;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class login extends AppCompatActivity {

EditText e1;
EditText e2;
Button b1;
Button b2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.login);
b2=(Button)findViewById(R.id.register);
e1=(EditText)findViewById(R.id.uname1);
e2=(EditText)findViewById(R.id.pword);

b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(e1.getText().toString().equals("ABHIMANYU") &&
e2.getText().toString().substring(6).equals("1040145"))
{
Toast.makeText(getApplicationContext(),"Correct User",40).show();
Intent send= new Intent(login.this,mainapp.class);
startActivity(send);
}
else
{
Toast.makeText(getApplicationContext(),"Enter correct username and password",40).show();
}
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent send1= new Intent(login.this,Register.class);
startActivity(send1);
}
});
}
}

register.java:-

package com.example.loginregister;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Register extends AppCompatActivity {

Button but1;
Button but;
EditText t1;
EditText t2;
EditText t3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
but=(Button)findViewById(R.id.button1);
but1=(Button)findViewById(R.id.back);
t1=(EditText)findViewById(R.id.et1);
t2=(EditText)findViewById(R.id.et2);
t3=(EditText)findViewById(R.id.et3);
but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(t2.getText().toString().equals(t3.getText().toString()) && !t1.getText().toString().equals("") &&
!t2.getText().toString().equals("") && !t3.getText().toString().equals(""))
{
Toast.makeText(getApplicationContext(),"User is registered",40).show();
}
else
{
Toast.makeText(getApplicationContext(),"Invalid input",40).show();
}

}
});
but1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(Register.this,login.class);
startActivity(i);
}
});
}
}

Mainapp.java:-

package com.example.loginregister;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class mainapp extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainapp);
}
}
Output:-

You might also like