0% found this document useful (0 votes)
60 views84 pages

MAD by Omi

The document discusses different layouts in Android like linear layout, absolute layout, table layout, frame layout, and relative layout. Code snippets are provided for each layout type to demonstrate how to define them in XML along with text views and edit texts.
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)
60 views84 pages

MAD by Omi

The document discusses different layouts in Android like linear layout, absolute layout, table layout, frame layout, and relative layout. Code snippets are provided for each layout type to demonstrate how to define them in XML along with text views and edit texts.
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/ 84

Practical :5

1] Linear Layout Code

<?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:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:orientation="vertical"
tools:context=".MainActivity">

<TextView
android:id="@+id/StudentName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Age:"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Mobile Number:"/>
</LinearLayout>

Output:
2]Absolute Layout
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
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:ignore="Deprecated">

<TextView
android:id="@+id/textViewName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name:"
android:textSize="18sp"
android:layout_x="50dp"
android:layout_y="50dp"/>

<EditText
android:id="@+id/editTextName"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_x="50dp"
android:layout_y="100dp"
android:hint="Enter your name"/>

<TextView
android:id="@+id/textViewAge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Age:"
android:textSize="18sp"
android:layout_x="50dp"
android:layout_y="150dp"/>

<EditText
android:id="@+id/editTextAge"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_x="50dp"
android:layout_y="200dp"
android:hint="Enter your age"/>

<TextView
android:id="@+id/textViewMobile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Mobile Number:"
android:textSize="18sp"
android:layout_x="50dp"
android:layout_y="250dp"/>

<EditText
android:id="@+id/editTextMobile"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_x="50dp"
android:layout_y="300dp"
android:hint="Enter your mobile number"
android:inputType="phone"/>

</AbsoluteLayout>

Output:

Practical:6
Table Layout

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


<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">

<TableRow>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="Name"
android:textStyle="bold"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Age"
android:textStyle="bold"
android:padding="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Grade"
android:textStyle="bold"
android:padding="8dp"/>

</TableRow>
<TableRow>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="John Doe"
android:padding="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="20"
android:padding="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A+"
android:padding="8dp"/>
</TableRow>
<TableRow>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Vijay K"
android:padding="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="19"
android:padding="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A+"
android:padding="8dp"/>
</TableRow>
<TableRow>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Aditya A"
android:padding="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="19"
android:padding="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A"
android:padding="8dp"/>
</TableRow>

<TableRow android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="Priyanka M" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="60" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="D" />
</TableRow>

</TableLayout>

Output:

Frame Layout:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">

<TextView
android:id="@+id/primitive_types"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Primitive Data Types:"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginTop="10dp"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="int, float, double, boolean, char, etc."
android:layout_below="@id/primitive_types"
android:layout_marginTop="40dp"
android:textSize="17sp"/>

<TextView
android:id="@+id/reference_types"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="70dp"
android:textStyle="bold"
android:text="Reference Data Types:"
android:textSize="20sp" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Class, Interface, Array, Enum, etc."
android:layout_below="@id/reference_types"
android:layout_marginTop="100dp"
android:textSize="17sp"/>
</FrameLayout>

Output:

Practical 7
Username and password
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">

<TextView
android:id="@+id/usernameLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Username"
android:textSize="18sp"/>

<EditText
android:id="@+id/usernameEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/usernameLabel"
android:layout_marginTop="8dp"
android:inputType="text"/>

<TextView
android:id="@+id/passwordLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/usernameEditText"
android:layout_marginTop="16dp"
android:text="Password"
android:textSize="18sp"/>

<EditText
android:id="@+id/passwordEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/passwordLabel"
android:layout_marginTop="8dp"
android:inputType="textPassword"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/passwordEditText"
android:layout_marginTop="16dp"
android:text="Submit"/>

</RelativeLayout>
OUTPUT:

Display Personal Information

Xml file
<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"
tools:context=".MainActivity">

<EditText
android:id="@+id/editTextName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Name"
android:layout_marginTop="50dp"/>

<EditText
android:id="@+id/editTextAge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Age"
android:layout_below="@id/editTextName"
android:layout_marginTop="20dp"/>
<EditText
android:id="@+id/editTextBranch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Branch Name"
android:layout_below="@id/editTextAge"
android:layout_marginTop="20dp"/>
<EditText
android:id="@+id/editTextYear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Year"
android:layout_below="@id/editTextBranch"
android:layout_marginTop="20dp"/>
<EditText
android:id="@+id/editTextNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Mobile Number"
android:layout_below="@id/editTextYear"
android:layout_marginTop="20dp"/>
<Button
android:id="@+id/buttonSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
android:layout_below="@id/editTextNumber"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"/>
<TextView
android:id="@+id/textViewResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:layout_below="@id/buttonSubmit"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"/>

</RelativeLayout>
MainActivity.java
package com.example.myapplication;// MainActivity.java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

EditText editTextName, editTextAge, editTextBranch, editTextyear, editTextNumber;


Button buttonSubmit;
TextView textViewResult;

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

editTextName = findViewById(R.id.editTextName);
editTextAge = findViewById(R.id.editTextAge);
editTextBranch = findViewById(R.id.editTextBranch);
editTextyear = findViewById(R.id.editTextYear);
editTextNumber=findViewById(R.id.editTextNumber);
buttonSubmit = findViewById(R.id.buttonSubmit);
textViewResult = findViewById(R.id.textViewResult);

buttonSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = editTextName.getText().toString();
String age = editTextAge.getText().toString();
String branch = editTextBranch.getText().toString();
String year = editTextyear.getText().toString();
String number = editTextNumber.getText().toString();

String result = "Name: " + name + "\nAge: " + age + "\nBranch Name:" + branch +
"\nYear:" +year+ "\nMobile Number:" +number;
textViewResult.setText(result);
}
});
}
}

Output:
Practical 8:
1)Search Engine Page auto Complete TextView
XMl File
<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"
tools:context=".MainActivity">

<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:hint="Type your search query"/>

<Button
android:id="@+id/searchButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/autoCompleteTextView"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:text="Search"/>

</RelativeLayout>

Java File
package com.example.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private String[] suggestions = {"Android", "Java", "XML", "Kotlin",


"Python", "Swift","C","C++", "JavaScript"};

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

AutoCompleteTextView autoCompleteTextView =
findViewById(R.id.autoCompleteTextView);

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,


android.R.layout.simple_dropdown_item_1line, suggestions);
autoCompleteTextView.setAdapter(adapter);

Button searchButton = findViewById(R.id.searchButton);

searchButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
String query =
autoCompleteTextView.getText().toString();
Toast.makeText(MainActivity.this, "Searching for: " +
query,
Toast.LENGTH_SHORT).show();
}
});
}
}

OUTPUT
2)Sixth Sem Subject
XML FILE
<?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=".MainActivity">

<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:hint="Search subjects of sixth semester"
android:completionThreshold="1" />

</RelativeLayout>

• JAVA FILE
package com.example.myapplication;

import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {

private final String[] subjects = {"NIS", "MGT", "MAD", "ETI",


"EDE","PWP","CPE"};

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

AutoCompleteTextView autoCompleteTextView =
findViewById(R.id.autoCompleteTextView);

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,


android.R.layout.simple_dropdown_item_1line, subjects);
autoCompleteTextView.setAdapter(adapter);
}
}
OUTPUT:

PRACTICAL 9:
• ON/OFF BLUETOOTH

XML FILE:

<?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"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/toggleButton"
android:layout_centerHorizontal="true"
android:text="Bluetooth"
android:textSize="20dp" />

<ToggleButton
android:id="@+id/toggleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:checked="false"
android:text="Bluetooth" />

</RelativeLayout>

JAVA FILE

package com.example.myapplication;

import android.annotation.SuppressLint;
import android.bluetooth.BluetoothAdapter;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.Toast;
import android.widget.ToggleButton;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private BluetoothAdapter bluetoothAdapter;

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

bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

ToggleButton toggleButton = findViewById(R.id.toggleButton);


toggleButton.setOnCheckedChangeListener(this::onCheckedChanged);
}

private void showToast(String message) {


Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}

private void onCheckedChanged(CompoundButton buttonView, boolean


isChecked) {
if (isChecked) {

if (bluetoothAdapter != null && !bluetoothAdapter.isEnabled())


{
final boolean enable = bluetoothAdapter.enable();
showToast("Bluetooth ON");
}
} else {

if (bluetoothAdapter != null && bluetoothAdapter.isEnabled()) {


final boolean disable = bluetoothAdapter.disable();
showToast("Bluetooth OFF");
}
}
}
}

OUTPUT:
Simple Calculator:
XML File
<?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"
tools:context=".MainActivity">

<TextView
android:id="@+id/textViewResult"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="0"
android:textSize="24sp"
android:textAlignment="center"/>

<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/textViewResult"
android:layout_marginTop="16dp"
android:columnCount="4"
android:padding="8dp">

<Button
android:id="@+id/buttonClear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C"
android:onClick="clear"/>

<Button
android:id="@+id/buttonDivide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/"
android:onClick="appendOperator"/>

<Button
android:id="@+id/buttonMultiply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*"
android:onClick="appendOperator"/>

<Button
android:id="@+id/buttonBackspace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="⌫"
android:onClick="backspace"/>

<Button
android:id="@+id/button7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="7"
android:onClick="appendDigit"/>

<Button
android:id="@+id/button8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8"
android:onClick="appendDigit"/>

<Button
android:id="@+id/button9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9"
android:onClick="appendDigit"/>

<Button
android:id="@+id/buttonSubtract"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"
android:onClick="appendOperator"/>

<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"
android:onClick="appendDigit"/>

<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="5"
android:onClick="appendDigit"/>

<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6"
android:onClick="appendDigit"/>

<Button
android:id="@+id/buttonAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"
android:onClick="appendOperator"/>

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:onClick="appendDigit"/>

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:onClick="appendDigit"/>

<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"
android:onClick="appendDigit"/>

<Button
android:id="@+id/buttonEquals"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:onClick="calculate"/>

<Button
android:id="@+id/button0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:layout_columnSpan="2"
android:onClick="appendDigit"/>

<Button
android:id="@+id/buttonDecimal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="."
android:onClick="appendDecimal"/>

</GridLayout>

</RelativeLayout>

JAVA FILE
package com.example.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {


private TextView textViewResult;
private StringBuilder currentInput = new StringBuilder();
private double operand1 = Double.NaN;
private double operand2 = Double.NaN;
private char operator = ' ';

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textViewResult = findViewById(R.id.textViewResult);
}

public void appendDigit(View view) {


String digit = ((TextView) view).getText().toString();
currentInput.append(digit);
updateDisplay();
}

public void appendOperator(View view) {


String newOperator = ((TextView) view).getText().toString();
if (currentInput.length() > 0) {
evaluate();
}
if (!Double.isNaN(operand1)) {
operator = newOperator.charAt(0);
currentInput.setLength(0);
}
}

public void appendDecimal(View view) {


if (!currentInput.toString().contains(".")) {
currentInput.append(".");
updateDisplay();
}
}

public void backspace(View view) {


if (currentInput.length() > 0) {
currentInput.deleteCharAt(currentInput.length() - 1);
updateDisplay();
}
}

public void clear(View view) {


currentInput.setLength(0);
operand1 = Double.NaN;
operand2 = Double.NaN;
operator = ' ';
updateDisplay();
}

public void calculate(View view) {


evaluate();
operator = ' ';
}

private void evaluate() {


if (!Double.isNaN(operand1) && operator != ' ') {
operand2 = Double.parseDouble(currentInput.toString());
switch (operator) {
case '+':
operand1 += operand2;
break;
case '-':
operand1 -= operand2;
break;
case '*':
operand1 *= operand2;
break;
case '/':
if (operand2 != 0) {
operand1 /= operand2;
} else {
textViewResult.setText("Error: Division by zero");
return;
}
break;
}
} else {
operand1 = Double.parseDouble(currentInput.toString());
}
currentInput.setLength(0);
currentInput.append(operand1);
updateDisplay();
}

private void updateDisplay() {


textViewResult.setText(currentInput);
}
}

OUTPUT:
Practical 10:

1. Login form for Social Networking Sites

XML File

<?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"
tools:context=".MainActivity">

<ImageView
android:id="@+id/imageViewLogo"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/img"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"/>

<EditText
android:id="@+id/editTextUsername"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/imageViewLogo"
android:layout_marginStart="30dp"
android:layout_marginTop="30dp"
android:layout_marginEnd="30dp"
android:hint="Username"
android:inputType="text"/>
<EditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/editTextUsername"
android:layout_marginStart="30dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="30dp"
android:hint="Password"
android:inputType="textPassword"/>

<Button
android:id="@+id/buttonLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/editTextPassword"
android:layout_marginStart="30dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="30dp"
android:text="Login"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editTextViewForget"
android:layout_below="@id/buttonLogin"
android:layout_marginTop="10dp"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"
android:text="Forget Password ?"
android:textSize="15dp"/>

<TextView
android:id="@+id/editTextViewCreate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/buttonLogin"
android:layout_marginStart="30dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="100dp"
android:text="Create new account?"
android:textSize="15dp" />

</RelativeLayout>

JAVA FILE

package com.example.myapplication;

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 editTextUsername;


private EditText editTextPassword;
private Button buttonLogin;

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

editTextUsername = findViewById(R.id.editTextUsername);
editTextPassword = findViewById(R.id.editTextPassword);
buttonLogin = findViewById(R.id.buttonLogin);

buttonLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username =
editTextUsername.getText().toString().trim();
String password =
editTextPassword.getText().toString().trim();

if (!username.isEmpty() && !password.isEmpty()) {


Toast.makeText(MainActivity.this, "Logged in as: " + username,
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "Please enter
username and password", Toast.LENGTH_SHORT).show();
}
}
});
}
}

OUTPUT:

Practical 11
Checkboxes and toast
XML file
<?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:padding="16dp"
tools:context=".MainActivity">

<CheckBox
android:id="@+id/checkbox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="EDE"
android:layout_marginBottom="10dp"/>

<CheckBox
android:id="@+id/checkbox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MAD"
android:layout_below="@id/checkbox1"
android:layout_marginBottom="10dp"/>

<CheckBox
android:id="@+id/checkbox3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NIS"
android:layout_below="@id/checkbox2"
android:layout_marginBottom="10dp"/>

<CheckBox
android:id="@+id/checkbox4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MGT"
android:layout_below="@id/checkbox3"
android:layout_marginBottom="10dp"/>

<CheckBox
android:id="@+id/checkbox5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PWP"
android:layout_below="@id/checkbox4"
android:layout_marginBottom="10dp"/>

<Button
android:id="@+id/showSelected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Selected"
android:layout_below="@id/checkbox5"
android:layout_centerHorizontal="true"/>

</RelativeLayout>

JAVA FILE
package com.example.myapplication;

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

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

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

final CheckBox checkBox1 = findViewById(R.id.checkbox1);


final CheckBox checkBox2 = findViewById(R.id.checkbox2);
final CheckBox checkBox3 = findViewById(R.id.checkbox3);
final CheckBox checkBox4 = findViewById(R.id.checkbox4);
final CheckBox checkBox5 = findViewById(R.id.checkbox5);
Button showSelectedButton = findViewById(R.id.showSelected);

showSelectedButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
StringBuilder selectedCheckBoxes = new StringBuilder();
if (checkBox1.isChecked()) {
selectedCheckBoxes.append("EDE\n");
}
if (checkBox2.isChecked()) {
selectedCheckBoxes.append("MAD\n");
}
if (checkBox3.isChecked()) {
selectedCheckBoxes.append("NIS\n");
}
if (checkBox4.isChecked()) {
selectedCheckBoxes.append("MGT\n");
}
if (checkBox5.isChecked()) {
selectedCheckBoxes.append("PWP\n");
}

if (selectedCheckBoxes.length() > 0) {
Toast.makeText(MainActivity.this, "Selected
Checkboxes:\n" + selectedCheckBoxes.toString(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, "No checkboxes
selected", Toast.LENGTH_SHORT).show();
}
}
});
}
}

OUTPUT:
Practical 12

RadioButton

XML File

<?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:padding="16dp"
tools:context=".MainActivity">

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Single Radio Buttons "
android:textSize="50px"
android:layout_marginStart="30dp"/>

<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="Radio Button 1" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/radioButton1"
android:layout_marginBottom="10dp"
android:text="Radio Button 2" />

<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/radioButton2"
android:layout_marginTop="10dp">

</RadioGroup>

<Button
android:id="@+id/showSelected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/radioGroup"
android:layout_marginTop="126dp"
android:layout_marginStart="140dp"
android:text="Show Selected" />

<RadioButton
android:id="@+id/radioButton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textView"
android:text="Male" />

<RadioButton
android:id="@+id/radioButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/radioButton4"
android:text="Female" />

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/radioButton2"
android:text="Radio Button inside RadioGroup"
android:layout_marginStart="30dp"
android:textSize="50px"/>

</RelativeLayout>

JAVA File

package com.example.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

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

final RadioButton radioButton1 = findViewById(R.id.radioButton1);


final RadioButton radioButton2 = findViewById(R.id.radioButton2);
final RadioGroup radioGroup = findViewById(R.id.radioGroup);
Button showSelectedButton = findViewById(R.id.showSelected);

showSelectedButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (radioButton1.isChecked()) {
showToast("Radio Button 1 selected");
} else if (radioButton2.isChecked()) {
showToast("Radio Button 2 selected");
} else {
int selectedRadioButtonId =
radioGroup.getCheckedRadioButtonId();
if (selectedRadioButtonId == R.id.radioButton3) {
showToast ( "Radio Button 3 selected" );
} else if (selectedRadioButtonId == R.id.radioButton4)
{
showToast ( "Radio Button 4 selected" );
} else {
showToast ( "No radio button selected" );
}
}
}
});
}

private void showToast(String message) {


Toast.makeText(MainActivity.this, message,
Toast.LENGTH_SHORT).show();
}
}

OUTPUT:
Practical 13

• Circular Progress bar

XML File

<?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:padding="10dp"
tools:context=".MainActivity">

<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:max="@integer/material_motion_duration_short_2"
android:progress="@integer/material_motion_duration_long_1"
android:visibility="visible"
/>

<TextView
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_alignTop="@id/progressBar"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginStart="54dp"
android:layout_marginTop="-132dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="100dp"
android:text="CIRCULAR PROGRESSBAR"
android:textSize="60px" />

</RelativeLayout>

JAVA File
package com.example.myapplication;

import android.os.Bundle;
import android.os.Handler;
import android.widget.ProgressBar;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private ProgressBar progressBar;


private int progressStatus = 0;
private Handler handler = new Handler();

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

progressBar = findViewById(R.id.progressBar);

new Thread(new Runnable() {


public void run() {
while (progressStatus < 100) {
progressStatus += 1;

handler.post(new Runnable() {
public void run() {
progressBar.setProgress(progressStatus);
}
});

try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
}

OUTPUT:
• Horizontal Progressbar for download file

XML File
<?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:padding="16dp"
tools:context=".MainActivity">

<Button
android:id="@+id/downloadButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Download File"
android:layout_centerInParent="true"/>

</RelativeLayout>

JAVA File
package com.example.myapplication;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private Button downloadButton;

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

downloadButton = findViewById(R.id.downloadButton);
downloadButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DownloadFileTask downloadFileTask = new DownloadFileTask();
downloadFileTask.execute();
}
});
}

private class DownloadFileTask extends AsyncTask<Void, Integer, Void> {

private ProgressDialog progressDialog;

@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(MainActivity.this);

progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("Downloading File...");
progressDialog.setCancelable(false);
progressDialog.setMax(100);
progressDialog.show();
}

@Override
protected Void doInBackground(Void... voids) {
for (int i = 0; i <= 100; i++) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
publishProgress(i);
}
return null;
}

@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
progressDialog.setProgress(values[0]);
}

@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
progressDialog.dismiss();
}
}
}

OUTPUT:
Practical 14
• ListView

XML File
<?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:padding="16pt"
tools:context=".MainActivity">

<ListView
android:id="@+id/listView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="40dp" />

<TextView
android:id="@+id/textView4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/material_dynamic_primary40"
android:text="ListView"
android:textAlignment="center"
android:textSize="5mm"
android:textColor="@color/white"
android:textStyle="bold" />

</RelativeLayout>

JAVA File
package com.example.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private ListView listView;


private String[] items = {"Android", "Java", "Php", "Hadoop",
"Sap","Python","Ajax", "C++", "C",
"Ruby","Javascript","Rails","Flutter","SQL","Xml","Vb.Net","LISP"};

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

listView = findViewById(R.id.listView);

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,


android.R.layout.simple_list_item_1, items);
listView.setAdapter(adapter);

listView.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int
position, long id) {
String selectedItem = items[position];
Toast.makeText(MainActivity.this, " " + selectedItem,
Toast.LENGTH_LONG).show();
}
});
}
}

OUTPUT:
• Image View
XML File:
<?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"
tools:context=".MainActivity">

<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleType="centerCrop"
android:src="@drawable/img"
/>

<Button
android:id="@+id/changeImageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="16dp"
android:text="Change Image" />

</RelativeLayout>

JAVA File:
package com.example.myapplication;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private ImageView imageView;


private Button changeImageButton;

private int currentImageIndex = 1;

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

imageView = findViewById(R.id.imageView);
changeImageButton = findViewById(R.id.changeImageButton);

imageView.setImageResource(R.drawable.img);

changeImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

currentImageIndex = (currentImageIndex % 2) + 1; int


imageResource = getResources().getIdentifier("image" + currentImageIndex,
"drawable", getPackageName());
imageView.setImageResource(imageResource);
}
});
}
}

OUTPUT:
• 15 Buttons using grid view
XML File
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="3"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:padding="10dp"
android:gravity="center"/>

Java file:
package com.example.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.Toast;

public class MainActivity extends Activity {

private String[] buttonNames = {"Button 1", "Button 2", "Button 3",


"Button 4", "Button 5",
"Button 6", "Button 7", "Button 8", "Button 9", "Button 10",
"Button 11", "Button 12", "Button 13", "Button 14", "Button
15"};

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

GridView gridView = findViewById(R.id.gridView);


ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, buttonNames);
gridView.setAdapter(adapter);

gridView.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(getApplicationContext(),
buttonNames[position], Toast.LENGTH_SHORT).show();
}
});
}
}

OUTPUT:

Practical 15:
• Toast Message
XML File:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me to display toast!"
android:textSize="20sp"
android:layout_centerInParent="true"/>

</RelativeLayout>

JAVA File:
package com.example.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

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

TextView myTextView = findViewById(R.id.myTextView);


myTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Hello,
This is a toast message!", Toast.LENGTH_LONG).show();
}
});
}
}

Output:
Practical 16:
XML file
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">

<Button
android:id="@+id/showDateTimePickerButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Date Time Picker"
android:layout_centerInParent="true"/>

</RelativeLayout>

Java File:
package com.example.myapplication;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import java.util.Calendar;

public class MainActivity extends Activity {


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

Button showDateTimePickerButton =
findViewById(R.id.showDateTimePickerButton);
showDateTimePickerButton.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
showDateTimePicker();
}
});
}

private void showDateTimePicker() {


final Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);

DatePickerDialog datePickerDialog = new DatePickerDialog(


this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(android.widget.DatePicker view,
int year, int month, int dayOfMonth) {
final int selectedYear = year;
final int selectedMonth = month;
final int selectedDayOfMonth = dayOfMonth;

TimePickerDialog timePickerDialog = new


TimePickerDialog(
MainActivity.this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void
onTimeSet(android.widget.TimePicker view, int hourOfDay, int minute) {
String dateTime =
selectedDayOfMonth + "/" + (selectedMonth + 1) + "/" + selectedYear +
" " + hourOfDay + ":" +
minute;
},
hourOfDay,
minute,
false);
timePickerDialog.show();
}
},
year,
month,
dayOfMonth);
datePickerDialog.show();
}
}
Output:
• DateTimePickerDialog
XML File:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">

<Button
android:id="@+id/selectDateButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select Date"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"/>

<Button
android:id="@+id/selectTimeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select Time"
android:layout_below="@id/selectDateButton"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"/>

</RelativeLayout>

Java File:
package com.example.myapplication;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import java.util.Calendar;

public class MainActivity extends Activity {


private Button selectDateButton, selectTimeButton;
private Calendar calendar;

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

selectDateButton = findViewById(R.id.selectDateButton);
selectTimeButton = findViewById(R.id.selectTimeButton);

calendar = Calendar.getInstance();

selectDateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDatePickerDialog();
}
});

selectTimeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showTimePickerDialog();
}
});
}

private void showDatePickerDialog() {


int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);

DatePickerDialog datePickerDialog = new DatePickerDialog(


this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(android.widget.DatePicker view,
int year, int month, int dayOfMonth) {
}
},
year,
month,
dayOfMonth);
datePickerDialog.show();
}

private void showTimePickerDialog() {


int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);

TimePickerDialog timePickerDialog = new TimePickerDialog(


this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(android.widget.TimePicker view,
int hourOfDay, int minute) {
}
},
hourOfDay,
minute,
true);
timePickerDialog.show();
}
}
OUTPUT:

Practical 17
Xml file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="24sp"
android:layout_centerInParent="true"/>

</RelativeLayout>

Java File
package com.example.myapplication;

import android.os.Bundle;
import android.app.Activity;
import android.widget.Toast;

public class MainActivity extends Activity {

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

showToast("onCreate() called");
}

@Override
protected void onStart() {
super.onStart();
showToast("onStart() called");
}

@Override
protected void onResume() {
super.onResume();
showToast("onResume() called");
}

@Override
protected void onPause() {
super.onPause();
showToast("onPause() called");
}

@Override
protected void onStop() {
super.onStop();
showToast("onStop() called");
}

@Override
protected void onDestroy() {
super.onDestroy();
showToast("onDestroy() called");
}

@Override
protected void onRestart() {
super.onRestart();
showToast("onRestart() called");
}

private void showToast(String message) {


Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}

Output:
Practical 18:
• Google page
XML File
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">

<EditText
android:id="@+id/urlEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter URL"
android:inputType="text"
android:layout_marginBottom="16dp"/>

<Button
android:id="@+id/navigateButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/urlEditText"
android:text="Navigate"
android:onClick="onNavigateClicked"/>
</RelativeLayout>

JAVA File:
package com.example.practical18;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

private EditText urlEditText;

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

urlEditText = findViewById(R.id.urlEditText);
}

public void onNavigateClicked(View view) {


String url = urlEditText.getText().toString().trim();

if (url.isEmpty()) {
Toast.makeText(this, "Please enter a URL",
Toast.LENGTH_SHORT).show();
} else {

if (!url.startsWith("http://") && !url.startsWith("https://"))


{
url = "http://" + url;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
}
}
}
Output:

• Start Dialer:
Xml.File

<?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"
tools:context=".MainActivity">

<Button
android:id="@+id/btnDialer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Open Dialer"
android:layout_centerInParent="true"
android:onClick="openDialer" />

</RelativeLayout>

JAVA File
package com.example.practical18_2;

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

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void openDialer(View view) {
try {
Intent intent = new Intent(Intent.ACTION_DIAL);
startActivity(intent);
} catch (Exception e) {
Toast.makeText(this, "Dialer app not found",
Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
}

Output:

Practical 20:
• Wifi code
Xml file
<?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"
tools:context=".MainActivity">

<Button
android:id="@+id/start_wifi_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="@string/start_wifi_service" />

<Button
android:id="@+id/stop_wifi_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/start_wifi_button"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="@string/stop_wifi_service" />

</RelativeLayout>

ACtivityMain.java
package com.example.practical20;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {

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

findViewById(R.id.start_wifi_button).setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
startWifiService();
}
});

findViewById(R.id.stop_wifi_button).setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
stopWifiService();
}
});
}

private void startWifiService() {


Intent intent = new Intent(this, WifiService.class);
startService(intent);
Toast.makeText(this, "WiFi Service Started",
Toast.LENGTH_SHORT).show();
}

private void stopWifiService() {


Intent intent = new Intent(this, WifiService.class);
stopService(intent);
Toast.makeText(this, "WiFi Service Stopped",
Toast.LENGTH_SHORT).show();
}
}
WifiService.java
package com.example.practical20;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.WifiManager;
import android.os.IBinder;
import android.widget.Toast;

public class WifiService extends Service {

public WifiManager wifiManager;

@Override
public IBinder onBind(Intent intent) {
return null;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
wifiManager = (WifiManager)
getApplicationContext().getSystemService(Context.WIFI_SERVICE);

if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
Toast.makeText(this, "WiFi is turned on",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "WiFi is already turned on",
Toast.LENGTH_SHORT).show();
}

return START_STICKY;
}

@Override
public void onDestroy() {
super.onDestroy();
wifiManager.setWifiEnabled(true);
Toast.makeText(this, "WiFi is turned off",
Toast.LENGTH_SHORT).show();
}
}
AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.practical20">

<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/AppTheme">
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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

<service android:name=".WifiService" />


</application>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

</manifest>
Output:
• Sart Service and Stop Service
Xml file
<?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"
tools:context=".MainActivity">

<Button
android:id="@+id/start_service_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Start Service"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"/>

<Button
android:id="@+id/stop_service_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop Service"
android:layout_below="@id/start_service_button"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"/>

</RelativeLayout>
ActivityMain.java
package com.example.practical20_2;

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

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

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

Button startServiceButton =
findViewById(R.id.start_service_button);
Button stopServiceButton = findViewById(R.id.stop_service_button);

startServiceButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startService();
}
});

stopServiceButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopService();
}
});
}

private void startService() {


Intent serviceIntent = new Intent(this, MyService.class);
startService(serviceIntent);
showToast("Service started");
}

private void stopService() {


Intent serviceIntent = new Intent(this, MyService.class);
stopService(serviceIntent);
showToast("Service stopped");
}

private void showToast(String message) {


Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
Service.java
package com.example.practical20_2;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
public class MyService extends Service {

@Override
public IBinder onBind(Intent intent) {
return null;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
showToast("Service started");
return START_STICKY;
}

@Override
public void onDestroy() {
super.onDestroy();
showToast("Service stopped");
}

private void showToast(String message) {


Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}

Output:

Practical 21 :
BroadCast Messages
Xml File
<?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"
tools:context=".MainActivity">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textSize="18sp" />

</RelativeLayout>

MainActivity.java
package com.example.practical21;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private TextView textView;


private BroadcastReceiver broadcastReceiver;

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

textView = findViewById(R.id.textView);

registerBroadcastReceiver();
}

@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(broadcastReceiver);
}

private void registerBroadcastReceiver() {


IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
intentFilter.addAction(Intent.ACTION_POWER_CONNECTED);
intentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED);
intentFilter.addAction ( Intent.ACTION_BATTERY_OKAY );

broadcastReceiver = new BroadcastReceiver() {


@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action != null) {
switch (action) {
case Intent.ACTION_AIRPLANE_MODE_CHANGED:
updateTextView("Airplane mode changed");
break;
case Intent.ACTION_BATTERY_CHANGED:
updateTextView("Battery state changed");
break;
case Intent.ACTION_POWER_CONNECTED:
updateTextView("Power connected");
break;
case Intent.ACTION_POWER_DISCONNECTED:
updateTextView("Power disconnected");
break;
case Intent.ACTION_BATTERY_OKAY:
updateTextView("Battery Okay");
break;
}
}
}
};

registerReceiver(broadcastReceiver, intentFilter);
}

private void updateTextView(String message) {


String currentText = textView.getText().toString();
currentText += "\n" + message;
textView.setText(currentText);
}
}
Output:

Practical 22:
XML File:
<?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:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
</RelativeLayout>

Java File :
package com.example.practical22_2;

import android.content.Context;
import android.graphics.Color;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.RelativeLayout;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements


SensorEventListener {

private SensorManager sensorManager;


private Sensor accelerometer;
private long lastShakeTime;
private static final int SHAKE_THRESHOLD = 100; // Minimum time between
private RelativeLayout layout;

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

layout = findViewById(R.id.layout);

sensorManager = (SensorManager)
getSystemService(Context.SENSOR_SERVICE);
if (sensorManager != null) {
accelerometer =
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
if (accelerometer != null) {
sensorManager.registerListener(this, accelerometer,
SensorManager.SENSOR_DELAY_NORMAL);
}
}
}

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

@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
long currentTime = System.currentTimeMillis();
if ((currentTime - lastShakeTime) > SHAKE_THRESHOLD) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];

double acceleration = Math.sqrt(x * x + y * y + z * z);


if (acceleration > 12) {
changeBackgroundColor();
lastShakeTime = currentTime;
}
}
}
}

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

private void changeBackgroundColor() {


int randomColor = Color.rgb((int) (Math.random() * 255), (int)
(Math.random() * 255), (int) (Math.random() * 255));
layout.setBackgroundColor(randomColor);
}
}
Output:

• List of sensors supported by mobile device

Xml File:
<?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"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="List of Sensors"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginBottom="16dp"/>

<ListView
android:id="@+id/sensor_list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

Java File:
package com.example.practical22;

import android.annotation.SuppressLint;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

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

ListView sensorListView = findViewById(R.id.sensor_list_view);

SensorManager sensorManager = (SensorManager)


getSystemService(SENSOR_SERVICE);
List<Sensor> sensorList =
sensorManager.getSensorList(Sensor.TYPE_ALL);

ArrayList<String> sensorNames = new ArrayList<>();


for (Sensor sensor : sensorList) {
sensorNames.add(sensor.getName());
}

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,


android.R.layout.simple_list_item_1, sensorNames);

sensorListView.setAdapter(adapter);
}
}

Output:
Practical 23:
• Capture image and display it using imageView
Xml File
<?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"
tools:context=".MainActivity">

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

</RelativeLayout>

Java File
package com.example.practical23;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

public class MainActivity extends AppCompatActivity {

private static final int CAMERA_PERMISSION_REQUEST_CODE = 100;


private static final int REQUEST_IMAGE_CAPTURE = 1;

private ImageView imageView;

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

imageView = findViewById(R.id.imageView);

if (ContextCompat.checkSelfPermission(this,
Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.CAMERA},
CAMERA_PERMISSION_REQUEST_CODE);
} else {
dispatchTakePictureIntent();
}
}

private void dispatchTakePictureIntent() {


Intent takePictureIntent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null)
{
startActivityForResult(takePictureIntent,
REQUEST_IMAGE_CAPTURE);
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent
data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode ==
RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
imageView.setImageBitmap(imageBitmap);
}
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull
String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions,
grantResults);
if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
dispatchTakePictureIntent();
} else {
}
}
}
}

AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera"
android:required="true"/>

<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Practical23"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>

</manifest>
Output:

Practical 25:
Animation:
XML File:
<?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:padding="16dp"
tools:context=".MainActivity">

<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="450dp"
android:src="@drawable/ic_launcher_background" />

<Button
android:id="@+id/rotateClockwiseBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:text="Rotate Clockwise"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"/>

<Button
android:id="@+id/rotateAntiClockwiseBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/rotateClockwiseBtn"
android:text="Rotate Anti-Clockwise"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"/>

<Button
android:id="@+id/zoomInBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/rotateAntiClockwiseBtn"
android:text="Zoom In"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"/>

<Button
android:id="@+id/zoomOutBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/zoomInBtn"
android:text="Zoom Out"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"/>

<Button
android:id="@+id/fadeInBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/zoomOutBtn"
android:text="Fade In"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"/>

<Button
android:id="@+id/fadeOutBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/fadeInBtn"
android:text="Fade Out"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"/>

</RelativeLayout>

Animation Files
• Rotate Clockwise
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%" />

</set>
• Rotate AntiClockWise:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromDegrees="0"
android:toDegrees="-360"
android:pivotX="50%"
android:pivotY="50%" />

</set>
• Zoom in
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXScale="1.0"
android:toXScale="1.5"
android:fromYScale="1.0"
android:toYScale="1.5"
android:pivotX="50%"
android:pivotY="50%" />

</set>
• Zoom out
• <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXScale="1.0"
android:toXScale="0.5"
android:fromYScale="1.0"
android:toYScale="0.5"
android:pivotX="50%"
android:pivotY="50%" />

</set>
• Fade In
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromAlpha="0.0"
android:toAlpha="1.0" />

</set>

• Fade out
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromAlpha="1.0"
android:toAlpha="0.0" />

</set>
• MainActivity:
• package com.example.practical25;

import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private ImageView imageView;

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

imageView = findViewById(R.id.imageView);

Button rotateClockwiseBtn =
findViewById(R.id.rotateClockwiseBtn);
Button rotateAntiClockwiseBtn =
findViewById(R.id.rotateAntiClockwiseBtn);
Button zoomInBtn = findViewById(R.id.zoomInBtn);
Button zoomOutBtn = findViewById(R.id.zoomOutBtn);
Button fadeInBtn = findViewById(R.id.fadeInBtn);
Button fadeOutBtn = findViewById(R.id.fadeOutBtn);

rotateClockwiseBtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
Animation rotateAnimation =
AnimationUtils.loadAnimation(MainActivity.this,
R.anim.rotate_clockwise);
imageView.startAnimation(rotateAnimation);
}
});

rotateAntiClockwiseBtn.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
Animation rotateAnimation =
AnimationUtils.loadAnimation(MainActivity.this,
R.anim.rotate_anticlockwise);
imageView.startAnimation(rotateAnimation);
}
});

zoomInBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Animation zoomAnimation =
AnimationUtils.loadAnimation(MainActivity.this, R.anim.zoom_in);
imageView.startAnimation(zoomAnimation);
}
});

zoomOutBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Animation zoomAnimation =
AnimationUtils.loadAnimation(MainActivity.this, R.anim.zoom_out);
imageView.startAnimation(zoomAnimation);
}
});

fadeInBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Animation fadeInAnimation =
AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_in);
imageView.startAnimation(fadeInAnimation);
}
});

fadeOutBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Animation fadeOutAnimation =
AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade_out);
imageView.startAnimation(fadeOutAnimation);
}
});
}
}

Output:
• Practical 26
XML File
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<EditText
android:id="@+id/editTextName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Name"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"/>

<EditText
android:id="@+id/editTextAge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Age"
android:layout_below="@id/editTextName"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"/>

<Button
android:id="@+id/buttonAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add"
android:layout_below="@id/editTextAge"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"/>

</RelativeLayout>

Java File:
package com.example.practical26;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.lang.ref.WeakReference;

public class MainActivity extends Activity {

private EditText editTextName;


private EditText editTextAge;
private Button buttonAdd;
private MyDBHelper myDB;

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

editTextName = findViewById(R.id.editTextName);
editTextAge = findViewById(R.id.editTextAge);
buttonAdd = findViewById(R.id.buttonAdd);

myDB = new MyDBHelper(this);

buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
insertData();
}
});
}

private void insertData() {


String name = editTextName.getText().toString().trim();
String ageStr = editTextAge.getText().toString().trim();

if (name.isEmpty() || ageStr.isEmpty()) {
Toast.makeText(this, "Please enter name and age",
Toast.LENGTH_SHORT).show();
return;
}

int age = Integer.parseInt(ageStr);

InsertDataTask task = new InsertDataTask(MainActivity.this);


task.execute(name, String.valueOf(age));
}
private static class InsertDataTask extends AsyncTask<String, Void,
Void> {

private WeakReference<MainActivity> activityReference;

InsertDataTask(MainActivity context) {
activityReference = new WeakReference<>(context);
}

@Override
protected Void doInBackground(String... params) {
MainActivity activity = activityReference.get();
if (activity == null || activity.isFinishing()) {
return null;
}
activity.myDB.insertData(params[0],
Integer.parseInt(params[1]));
return null;
}

@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
MainActivity activity = activityReference.get();
if (activity == null || activity.isFinishing()) {
return;
}
Toast.makeText(activity, "Data inserted successfully",
Toast.LENGTH_SHORT).show();
activity.editTextName.setText("");
activity.editTextAge.setText("");
}
}
}

DataBase File
package com.example.practical26;

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

public class MyDBHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "mydatabase.db";


private static final int DATABASE_VERSION = 1;

private static final String TABLE_NAME = "mytable";


private static final String COLUMN_NAME = "name";
private static final String COLUMN_AGE = "age";

public MyDBHelper(Context context) {


super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
String query = "CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_NAME + " TEXT, " +
COLUMN_AGE + " INTEGER)";
db.execSQL(query);
}

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

public void insertData(String name, int age) {


SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, name);
values.put(COLUMN_AGE, age);
db.insert(TABLE_NAME, null, values);
db.close();
}
}
Android Manifest Permission
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Output:

Practical 27:
XML File:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<EditText
android:id="@+id/editTextUsername"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"
android:layout_centerInParent="true"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"/>

<EditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:inputType="textPassword"
android:layout_below="@id/editTextUsername"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"/>

<Button
android:id="@+id/buttonLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
android:layout_below="@id/editTextPassword"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"/>

</RelativeLayout>

JAVA FILE:
package com.example.practical27;

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

public class MainActivity extends Activity {

private EditText editTextUsername;


private EditText editTextPassword;
private Button buttonLogin;

private static final String VALID_USERNAME = "Vijayk_7979";


private static final String VALID_PASSWORD = "VMSKP";

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

editTextUsername = findViewById(R.id.editTextUsername);
editTextPassword = findViewById(R.id.editTextPassword);
buttonLogin = findViewById(R.id.buttonLogin);

buttonLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
login();
}
});
}

private void login() {


String username = editTextUsername.getText().toString().trim();
String password = editTextPassword.getText().toString().trim();

if (username.equals(VALID_USERNAME) &&
password.equals(VALID_PASSWORD)) {
showToast("Login Successful");
} else {
showToast("Login Unsuccessful");
}
}

private void showToast(String message) {


Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}

OUTPUT:

Practical 28:
Login Validation and attempts count:
XML File:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/editTextUsername"
android:layout_width="match_parent"
android:layout_centerInParent="true"
android:layout_height="wrap_content"
android:hint="Username" />

<EditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/editTextUsername"
android:hint="Password"
android:inputType="textPassword" />

<Button
android:id="@+id/buttonLogin"
android:layout_below="@id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login" />

</RelativeLayout>

Java File:
package com.example.practical28;

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 editTextUsername, editTextPassword;


private Button buttonLogin;
private int loginAttempts = 0;
private final int MAX_ATTEMPTS = 3;

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

editTextUsername = findViewById(R.id.editTextUsername);
editTextPassword = findViewById(R.id.editTextPassword);
buttonLogin = findViewById(R.id.buttonLogin);

buttonLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username =
editTextUsername.getText().toString().trim();
String password =
editTextPassword.getText().toString().trim();

if (username.isEmpty() || password.isEmpty()) {
showToast("Please enter both username and password.");
} else if (username.length() < 4 || password.length() < 4)
{
showToast("Username and password must be at least 4
characters long.");
} else {

if (username.equals("admin") &&
password.equals("password")) {
loginSuccess();
} else {
loginAttempts++;
if (loginAttempts >= MAX_ATTEMPTS) {
showToast("Maximum login attempts reached.");
buttonLogin.setEnabled(false);
} else {
showToast("Incorrect username or password.
Attempts left: " + (MAX_ATTEMPTS - loginAttempts));
}
}
}
}
});
}

private void showToast(String message) {


Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}

private void loginSuccess() {


showToast("Login successful!");
}
}

Manifest File Permission:


<uses-permission android:name="android.permission.INTERNET" />

Output:
Practical 29:
• SMS SEND AND RECEIVE:
XML FILE:
<?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"
tools:context=".MainActivity">

<EditText
android:id="@+id/phone_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:hint="Enter phone number" />

<EditText
android:id="@+id/message_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/phone_number"
android:hint="Enter message" />

<Button
android:id="@+id/send_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:layout_centerHorizontal="true"
android:layout_below="@id/message_text"
android:text="Send" />

<TextView
android:id="@+id/received_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/send_button"
android:layout_marginTop="20dp" />

</RelativeLayout>

JAVA File:
package com.example.practical29;

import android.Manifest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

public class MainActivity extends AppCompatActivity {

EditText phoneNumber, messageText;


Button sendButton;
TextView receivedMessage;

private static final int REQUEST_SMS_PERMISSION = 101;

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

phoneNumber = findViewById(R.id.phone_number);
messageText = findViewById(R.id.message_text);
sendButton = findViewById(R.id.send_button);
receivedMessage = findViewById(R.id.received_message);

sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendSMS();
}
});

ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.SEND_SMS, Manifest.permission.RECEIVE_SMS},
REQUEST_SMS_PERMISSION);
}

private void sendSMS() {


String phone = phoneNumber.getText().toString();
String message = messageText.getText().toString();

if (!phone.isEmpty() && !message.isEmpty()) {


SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phone, null, message, null, null);
Toast.makeText(getApplicationContext(), "SMS sent
successfully", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "Phone number or
message cannot be empty", Toast.LENGTH_SHORT).show();
}
}

private final BroadcastReceiver smsReceiver = new


BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus != null) {
for (Object pdu : pdus) {
SmsMessage smsMessage =
SmsMessage.createFromPdu((byte[]) pdu);
String sender =
smsMessage.getDisplayOriginatingAddress();
String message =
smsMessage.getDisplayMessageBody();
receivedMessage.setText("From: " + sender +
"\nMessage: " + message);
}
}
}
}
};

@Override
protected void onResume() {
super.onResume();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(smsReceiver, intentFilter);
}

@Override
protected void onPause() {
super.onPause();
unregisterReceiver(smsReceiver);
}
}

Manifest Permission:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />

<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Practical29"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>

</manifest>

OUTPUT:

Practical 30:
Send Email:
Xml File
<?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"
tools:context=".MainActivity">
<EditText
android:id="@+id/editTextTo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="To"
android:inputType="textEmailAddress"
android:layout_margin="16dp"/>

<EditText
android:id="@+id/editTextSubject"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Subject"
android:layout_below="@id/editTextTo"
android:layout_margin="16dp"/>

<EditText
android:id="@+id/editTextMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Message"
android:layout_below="@id/editTextSubject"
android:layout_margin="16dp"/>

<Button
android:id="@+id/buttonSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send"
android:layout_below="@id/editTextMessage"
android:layout_centerHorizontal="true"
android:layout_marginTop="24dp"/>

</RelativeLayout>

Java File:
package com.example.practical30;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

EditText editTextTo, editTextSubject, editTextMessage;

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

editTextTo = findViewById(R.id.editTextTo);
editTextSubject = findViewById(R.id.editTextSubject);
editTextMessage = findViewById(R.id.editTextMessage);

Button buttonSend = findViewById(R.id.buttonSend);


buttonSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendEmail();
}
});
}

private void sendEmail() {


String recipient = editTextTo.getText().toString().trim();
String subject = editTextSubject.getText().toString().trim();
String message = editTextMessage.getText().toString().trim();

Intent intent = new Intent(Intent.ACTION_SEND);


intent.setType("message/rfc822");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{recipient});
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, message);

try {
startActivity(Intent.createChooser(intent, "Choose an email
client"));
} catch (android.content.ActivityNotFoundException ex) {
}
}
}

AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET"/>

<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Practical30"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>

</manifest>

OUTPUT:
Practical 31:
• Current location
XML File:
<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"
tools:context=".MainActivity">

<TextView
android:id="@+id/locationTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Waiting for location..."
android:textSize="18sp" />

</RelativeLayout>

Java File:
package com.example.practical31;

import android.content.Intent;
import android.location.Location;
import android.os.Bundle;
import android.widget.TextView;

import androidx.annotation.Nullable;
import android.app.Activity;

public class MainActivity extends Activity {

private static final int REQUEST_LOCATION = 1;


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

locationTextView = findViewById(R.id.locationTextView);

Intent intent = new Intent("android.intent.action.MAIN");


intent.setClassName("com.google.android.apps.maps",
"com.google.android.maps.MapsActivity");
startActivityForResult(intent, REQUEST_LOCATION);
}

@Override
protected void onActivityResult(int requestCode, int resultCode,
@Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_LOCATION) {
if (resultCode == RESULT_OK && data != null) {
Location location = data.getParcelableExtra("location");
if (location != null) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
locationTextView.setText("Latitude: " + latitude + ",
Longitude: " + longitude);
}
} else {
locationTextView.setText("Location request canceled");
}
}
}
}
AndroidManifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.practical31">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
/>
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" />

<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/AppTheme">
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>

</manifest>
OUTPUT:

Practical 32:
XML File:

You might also like