You are on page 1of 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