.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
Randomize App
APPLICATION LOGO/ICON
App Developer:
Name: John Kenith Avenido
Name: Maria Quilaton
ANGELICA P. TEREC
Instructor
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 1 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
Abstract
Randomize is an user-friendly and multifunctional application designed to simplify the process of
generating random outcomes, making it an invaluable tool for educators and group organizers. The
app offers robust features for randomizing numbers, names, and group assignments, catering to
various educational and administrative needs. Teachers can effortlessly create randomized numbers,
assign students to teams, or select participants for classroom activities, promoting fairness and
engagement. With its user-friendly interface and customizable options, Randomize streamlines
decision-making, reduces bias, and saves time, empowering educators to focus on fostering
interactive and dynamic learning environments.
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 2 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
Source Code:
Splash Screen import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
XML public class dashMain extends AppCompatActivity {
<?xml version="1.0" encoding="utf-8"?> @Override
<RelativeLayout protected void onCreate(Bundle savedInstanceState) {
xmlns:android="http://schemas.android.com/apk/res/android" super.onCreate(savedInstanceState);
xmlns:app="http://schemas.android.com/apk/res-auto" EdgeToEdge.enable(this);
xmlns:tools="http://schemas.android.com/tools" setContentView(R.layout.activity_dash_main);
android:id="@+id/main"
android:layout_width="match_parent" new Handler().postDelayed(new Runnable() {
android:layout_height="match_parent" @Override
android:background="@drawable/a5xojg39" public void run() {
tools:context=".dashMain"> Intent intent = new Intent(dashMain.this,
dashboardMenu.class);
startActivity(intent);
</RelativeLayout> finish();
}
Main Code },4000);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(
package com.example.randomizeapp;
R.id.main), (v, insets) -> {
Insets systemBars =
import android.content.Intent;
insets.getInsets(WindowInsetsCompat.Type.systemBars());
import android.os.Bundle;
v.setPadding(systemBars.left, systemBars.top,
import android.os.Handler;
systemBars.right, systemBars.bottom);
return insets;
import androidx.activity.EdgeToEdge;
});
import androidx.appcompat.app.AppCompatActivity;
}
import androidx.core.graphics.Insets;
}
Main Dashboard
Xml
<androidx.constraintlayout.widget.ConstraintLayout android:layout_width="277dp"
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="77dp"
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_marginBottom="408dp"
xmlns:tools="http://schemas.android.com/tools" android:autoSizeTextType="none"
android:id="@+id/main" android:background="@drawable/bago"
android:layout_width="match_parent" android:fontFamily="@font/amiko"
android:layout_height="match_parent" android:text="Randomize Group"
android:background="@drawable/back3"
tools:context=".dashboardMenu"> android:textAppearance="@style/TextAppearance.AppCompat
.Large"
<Button android:textColor="@color/white"
android:id="@+id/btngroup" android:textSize="24sp"
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 3 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
android:textStyle="bold|italic" android:id="@+id/textView2"
app:cornerRadius="1dp" android:layout_width="386dp"
app:iconPadding="8dp" android:layout_height="102dp"
app:iconTint="@color/black" android:fontFamily="@font/bagel_fat_one"
app:layout_constraintBottom_toBottomOf="parent" android:text="RANDOMIZE"
app:layout_constraintEnd_toEndOf="parent" android:textAlignment="center"
app:layout_constraintStart_toStartOf="parent" android:textColor="@android:color/background_light"
app:strokeColor="@color/black" /> android:textSize="60sp"
app:layout_constraintBottom_toBottomOf="parent"
<Button app:layout_constraintEnd_toEndOf="parent"
android:id="@+id/btnlead" app:layout_constraintHorizontal_bias="0.48"
android:layout_width="277dp" app:layout_constraintStart_toStartOf="parent"
android:layout_height="77dp" app:layout_constraintTop_toTopOf="parent"
android:autoSizeTextType="none" app:layout_constraintVertical_bias="0.047" />
android:background="@drawable/newnapud"
android:fontFamily="@font/amiko"
android:text="Randomize Name" </androidx.constraintlayout.widget.ConstraintLayout>
android:textAppearance="@style/TextAppearance.AppCompat
.Large" Main Code
android:textColor="@color/white"
android:textSize="24sp" package com.example.randomizeapp;
android:textStyle="bold|italic"
app:icon="@drawable/baseline_person_4_64" import android.content.Intent;
app:iconTint="@color/black" import android.os.Bundle;
app:layout_constraintBottom_toBottomOf="parent" import android.view.View;
app:layout_constraintEnd_toEndOf="parent" import android.widget.Button;
app:layout_constraintHorizontal_bias="0.496"
app:layout_constraintStart_toStartOf="parent" import androidx.activity.EdgeToEdge;
app:layout_constraintTop_toBottomOf="@+id/btngroup" import androidx.appcompat.app.AppCompatActivity;
app:layout_constraintVertical_bias="0.15"
app:strokeColor="@color/black" /> public class dashboardMenu extends AppCompatActivity {
<Button @Override
android:id="@+id/btnNum" protected void onCreate(Bundle savedInstanceState) {
android:layout_width="277dp" super.onCreate(savedInstanceState);
android:layout_height="77dp" EdgeToEdge.enable(this);
android:background="@drawable/code" setContentView(R.layout.activity_dashboard_menu);
android:fontFamily="@font/amiko"
android:text="Pick-a-Number" Button btngroup = findViewById(R.id.btngroup);
btngroup.setOnClickListener(new View.OnClickListener()
android:textAppearance="@style/TextAppearance.AppCompat {
.Large" @Override
android:textColor="@color/white" public void onClick(View view) {
android:textSize="24sp" Intent intent = new Intent(dashboardMenu.this,
android:textStyle="bold|italic" random_group2.class);
app:icon="@drawable/baseline_123_64" startActivity(intent);
app:iconTint="@color/black" }
app:layout_constraintBottom_toBottomOf="parent" });
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.496" Button btnlead = findViewById(R.id.btnlead);
app:layout_constraintStart_toStartOf="parent" btnlead.setOnClickListener(new View.OnClickListener() {
app:layout_constraintTop_toBottomOf="@+id/btnlead" @Override
app:layout_constraintVertical_bias="0.298" public void onClick(View view) {
app:strokeColor="@color/black" /> Intent intent = new Intent(dashboardMenu.this,
RandomizeName.class);
<TextView startActivity(intent);
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 4 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
} app:layout_constraintStart_toStartOf="parent"
}); app:layout_constraintTop_toTopOf="parent" />
Button btnNum = findViewById(R.id.btnNum); <View
btnNum.setOnClickListener(new View.OnClickListener() { android:id="@+id/view3"
@Override android:layout_width="351dp"
public void onClick(View view) { android:layout_height="431dp"
Intent intent = new Intent(dashboardMenu.this, android:background="@color/silver"
randomnumbergenerator.class); android:fadingEdge="horizontal|vertical"
startActivity(intent);
} app:barrierMargin="@dimen/cardview_compat_inset_shadow"
}); app:layout_constraintBottom_toBottomOf="parent"
} app:layout_constraintEnd_toEndOf="parent"
} app:layout_constraintHorizontal_bias="0.492"
app:layout_constraintStart_toStartOf="parent"
Random Group app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.81" />
Xml <Button
android:id="@+id/proceed"
<androidx.constraintlayout.widget.ConstraintLayout android:layout_width="180dp"
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="70dp"
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_marginBottom="32dp"
xmlns:tools="http://schemas.android.com/tools" android:background="@drawable/editextbkg"
android:id="@+id/main" android:fontFamily="@font/bungee_inline"
android:layout_width="match_parent" android:text="PROCEED"
android:layout_height="match_parent" android:textAlignment="center"
android:background="@drawable/mhl6311g" android:textSize="20sp"
tools:context=".random_group2"> app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
<Button app:layout_constraintHorizontal_bias="0.497"
android:id="@+id/button" app:layout_constraintStart_toStartOf="parent" />
android:layout_width="48dp"
android:layout_height="50dp" <EditText
android:layout_marginStart="4dp" android:id="@+id/editTextNumber"
android:background="@drawable/back" android:layout_width="306dp"
android:backgroundTint="@color/white" android:layout_height="81dp"
android:text="back" android:background="@drawable/editextbkg"
android:textColor="@color/white" android:drawableEnd="@drawable/baseline_group_32"
android:textSize="8sp" android:ems="10"
app:layout_constraintBottom_toBottomOf="parent" android:hint="Enter Total no. to be grouped:"
app:layout_constraintStart_toStartOf="parent" android:inputType="number"
app:layout_constraintTop_toTopOf="parent" android:textSize="20sp"
app:layout_constraintVertical_bias="0.044" /> app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
<TextView app:layout_constraintHorizontal_bias="0.485"
android:id="@+id/textView4" app:layout_constraintStart_toStartOf="parent"
android:layout_width="309dp" app:layout_constraintTop_toTopOf="parent"
android:layout_height="140dp" app:layout_constraintVertical_bias="0.396" />
android:layout_marginTop="64dp"
android:fontFamily="@font/bagel_fat_one" <EditText
android:text="Randomizing Group" android:id="@+id/editTextNumber2"
android:textAlignment="center" android:layout_width="305dp"
android:textColor="@color/white" android:layout_height="75dp"
android:textSize="48sp" android:background="@drawable/editextbkg"
app:layout_constraintEnd_toEndOf="parent" android:drawableEnd="@drawable/baseline_groups_24"
app:layout_constraintHorizontal_bias="0.46" android:ems="10"
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 5 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
android:hint="Number of Groups:" membersPerGroupField =
android:inputType="number" findViewById(R.id.editTextNumber3);
android:textAlignment="textStart" Button proceedButton = findViewById(R.id.proceed);
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent" Button button = findViewById(R.id.button);
app:layout_constraintEnd_toEndOf="parent" button.setOnClickListener(new View.OnClickListener() {
app:layout_constraintHorizontal_bias="0.481" @Override
app:layout_constraintStart_toStartOf="parent" public void onClick(View view) {
app:layout_constraintTop_toTopOf="parent" Intent intent = new Intent(random_group2.this,
app:layout_constraintVertical_bias="0.582" /> dashboardMenu.class);
finish();
<EditText }
android:id="@+id/editTextNumber3" });
android:layout_width="307dp" proceedButton.setOnClickListener(v -> {
android:layout_height="78dp" String totalNumberStr =
android:background="@drawable/editextbkg" totalNumberField.getText().toString().trim();
android:drawableEnd="@drawable/baseline_123_64" String numberOfGroupsStr =
android:ems="10" numberOfGroupsField.getText().toString().trim();
android:hint="No. of Members per group:" String membersPerGroupStr =
android:inputType="number" membersPerGroupField.getText().toString().trim();
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent" if (totalNumberStr.isEmpty() ||
app:layout_constraintEnd_toEndOf="parent" numberOfGroupsStr.isEmpty() ||
app:layout_constraintHorizontal_bias="0.519" membersPerGroupStr.isEmpty()) {
app:layout_constraintStart_toStartOf="parent" Toast.makeText(this, "Please fill in all fields",
app:layout_constraintTop_toTopOf="parent" Toast.LENGTH_SHORT).show();
app:layout_constraintVertical_bias="0.758" /> return;
}
</androidx.constraintlayout.widget.ConstraintLayout> int totalNumber = Integer.parseInt(totalNumberStr);
int numberOfGroups =
Main code Integer.parseInt(numberOfGroupsStr);
int membersPerGroup =
Integer.parseInt(membersPerGroupStr);
package com.example.randomizeapp;
if (numberOfGroups * membersPerGroup !=
import android.content.Intent;
totalNumber) {
import android.os.Bundle;
Toast.makeText(this, "Invalid group configuration!",
import android.view.View;
Toast.LENGTH_SHORT).show();
import android.widget.Button;
return;
import android.widget.EditText;
}
import android.widget.Toast;
Intent intent = new Intent(random_group2.this,
import androidx.appcompat.app.AppCompatActivity;
FillNames.class);
intent.putExtra("TOTAL_NUMBER", totalNumber);
public class random_group2 extends AppCompatActivity {
intent.putExtra("NUMBER_OF_GROUPS",
numberOfGroups);
private EditText totalNumberField, numberOfGroupsField,
intent.putExtra("MEMBERS_PER_GROUP",
membersPerGroupField;
membersPerGroup);
startActivity(intent);
@Override
});
protected void onCreate(Bundle savedInstanceState) {
}
super.onCreate(savedInstanceState);
}
setContentView(R.layout.activity_random_group2);
totalNumberField = findViewById(R.id.editTextNumber); Fill Names (Random Group)
numberOfGroupsField =
findViewById(R.id.editTextNumber2); Xml
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 6 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
android:background="@drawable/editextbkg"
<androidx.constraintlayout.widget.ConstraintLayout android:text="Generate Names"
xmlns:android="http://schemas.android.com/apk/res/android" app:layout_constraintBottom_toBottomOf="parent"
xmlns:app="http://schemas.android.com/apk/res-auto" app:layout_constraintEnd_toEndOf="parent"
xmlns:tools="http://schemas.android.com/tools" app:layout_constraintStart_toStartOf="parent" />
android:id="@+id/main" </androidx.constraintlayout.widget.ConstraintLayout>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bckg" Main code
tools:context=".FillNames">
package com.example.randomizeapp;
<!-- Back Button -->
import android.content.Intent;
<!-- Scrollable Container for Name Inputs --> import android.os.Bundle;
import android.widget.Button;
<Button import android.widget.EditText;
android:id="@+id/backButton" import android.widget.LinearLayout;
android:layout_width="48dp" import android.widget.Toast;
android:layout_height="48dp"
android:layout_margin="16dp" import androidx.appcompat.app.AppCompatActivity;
android:layout_marginTop="16dp"
android:background="@drawable/back" import java.util.ArrayList;
android:backgroundTint="@color/white" import java.util.Collections;
android:contentDescription="Back"
app:layout_constraintStart_toStartOf="parent" public class FillNames extends AppCompatActivity {
app:layout_constraintTop_toTopOf="parent" />
private LinearLayout namesContainer;
<ScrollView
android:id="@+id/scrollView" @Override
android:layout_width="0dp" protected void onCreate(Bundle savedInstanceState) {
android:layout_height="0dp" super.onCreate(savedInstanceState);
android:background="@color/white" setContentView(R.layout.activity_fill_names);
android:contentDescription="scrollView"
namesContainer = findViewById(R.id.namesContainer);
app:layout_constraintBottom_toTopOf="@id/submitNamesButt Button backButton = findViewById(R.id.backButton);
on" Button submitButton =
app:layout_constraintEnd_toEndOf="parent" findViewById(R.id.submitNamesButton);
app:layout_constraintStart_toStartOf="parent"
int totalNumber =
app:layout_constraintTop_toBottomOf="@id/backButton"> getIntent().getIntExtra("TOTAL_NUMBER", 0);
int numberOfGroups =
<LinearLayout getIntent().getIntExtra("NUMBER_OF_GROUPS", 0);
android:id="@+id/namesContainer" int membersPerGroup =
android:layout_width="match_parent" getIntent().getIntExtra("MEMBERS_PER_GROUP", 0);
android:layout_height="wrap_content"
android:orientation="vertical" // Back button functionality
android:padding="16dp"> backButton.setOnClickListener(v -> finish());
<!-- Dynamically added EditTexts will go here -->
</LinearLayout> // Dynamically create EditText fields for names
</ScrollView> for (int i = 1; i <= totalNumber; i++) {
EditText nameInput = new EditText(this);
<!-- Submit Button --> nameInput.setHint("Enter name for Person " + i);
<Button nameInput.setId(i);
android:id="@+id/submitNamesButton" nameInput.setLayoutParams(new
android:layout_width="0dp" LinearLayout.LayoutParams(
android:layout_height="wrap_content" LinearLayout.LayoutParams.MATCH_PARENT,
android:layout_margin="16dp" LinearLayout.LayoutParams.WRAP_CONTENT
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 7 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
));
namesContainer.addView(nameInput); <LinearLayout
} android:layout_width="match_parent"
android:layout_height="wrap_content"
// Handle submit button click android:orientation="vertical"
submitButton.setOnClickListener(v -> { android:padding="16dp">
ArrayList<String> names = new ArrayList<>();
boolean valid = true; <!-- Table for Group Containers -->
<TableLayout
for (int i = 1; i <= totalNumber; i++) { android:id="@+id/groupsContainer"
EditText nameInput = findViewById(i); android:layout_width="match_parent"
String name = nameInput.getText().toString().trim(); android:layout_height="wrap_content"
android:background="@color/white"
if (name.isEmpty()) { android:padding="8dp"
valid = false; android:shrinkColumns="*"
nameInput.setError("Name cannot be empty!"); android:stretchColumns="*"></TableLayout>
} else {
names.add(name); <!-- Back Button at the Bottom -->
} <Button
} android:id="@+id/backButton"
android:layout_width="207dp"
if (!valid) { android:layout_height="wrap_content"
Toast.makeText(this, "Please fill all names", android:layout_gravity="center_horizontal"
Toast.LENGTH_SHORT).show(); android:layout_marginTop="16dp"
return; android:backgroundTint="@color/teal"
} android:padding="12dp"
android:text="Back to menu"
// Shuffle names and create groups android:textColor="@android:color/white"
Collections.shuffle(names); android:textStyle="bold" />
ArrayList<ArrayList<String>> groups = new </LinearLayout>
ArrayList<>(); </ScrollView>
for (int i = 0; i < numberOfGroups; i++) {
groups.add(new ArrayList<>(names.subList(i * Main Code
membersPerGroup, (i + 1) * membersPerGroup)));
} package com.example.randomizeapp;
// Navigate to DisplayGroups activity import android.content.Intent;
Intent intent = new Intent(FillNames.this, import android.graphics.Color;
lastActivity.class); import android.os.Bundle;
intent.putExtra("GROUPS", groups); import android.view.View;
startActivity(intent); import android.widget.TableLayout;
}); import android.widget.TableRow;
} import android.widget.TextView;
} import android.widget.Button;
Last Activity (Random Group) import androidx.appcompat.app.AppCompatActivity;
Xml import java.util.ArrayList;
<ScrollView public class lastActivity extends AppCompatActivity {
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" private TableLayout groupsContainer;
android:layout_width="match_parent"
android:layout_height="match_parent" @Override
android:background="@drawable/i63645bk" protected void onCreate(Bundle savedInstanceState) {
android:contentDescription="output" super.onCreate(savedInstanceState);
tools:context=".lastActivity"> setContentView(R.layout.activity_last);
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 8 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
}
Button button = findViewById(R.id.backButton); }
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { Randomize Name
Intent intent =new Intent(lastActivity.this,
dashboardMenu.class);
finish();
Xml
}
}); <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
groupsContainer = findViewById(R.id.groupsContainer); xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
ArrayList<ArrayList<String>> groups = android:layout_width="match_parent"
(ArrayList<ArrayList<String>>) android:layout_height="match_parent"
getIntent().getSerializableExtra("GROUPS"); android:background="@drawable/back2"
tools:context=".RandomizeName">
String[] colors = {"#FFC0CB", "#ADD8E6", "#90EE90",
"#FFD700", "#FFA07A", "#DDA0DD"}; <Button
android:id="@+id/backButton"
for (int i = 0; i < groups.size(); i++) { android:layout_width="48dp"
// Create a row for the group title android:layout_height="50dp"
TableRow titleRow = new TableRow(this); android:layout_marginTop="4dp"
titleRow.setBackgroundColor(Color.parseColor(colors[i android:background="@drawable/back"
% colors.length])); android:backgroundTint="@color/white"
titleRow.setPadding(8, 8, 8, 8); android:text="back"
android:textColor="@color/white"
TextView groupLabel = new TextView(this); android:textSize="8sp"
groupLabel.setText("Group " + (i + 1)); app:layout_constraintEnd_toEndOf="parent"
groupLabel.setTextSize(18); app:layout_constraintHorizontal_bias="0.0"
groupLabel.setTextColor(Color.BLACK); app:layout_constraintStart_toStartOf="parent"
groupLabel.setGravity(android.view.Gravity.CENTER); app:layout_constraintTop_toTopOf="parent" />
groupLabel.setPadding(16, 16, 16, 16);
<TextView
// Add title to row android:id="@+id/textView"
titleRow.addView(groupLabel); android:layout_width="309dp"
groupsContainer.addView(titleRow); android:layout_height="129dp"
android:fontFamily="@font/bagel_fat_one"
// Create rows for each member android:text="Randomize Name"
for (String name : groups.get(i)) { android:textAlignment="center"
TableRow memberRow = new TableRow(this);
memberRow.setPadding(8, 8, 8, 8); android:textAppearance="@style/TextAppearance.AppCompat
.Large"
TextView nameView = new TextView(this); android:textColor="@color/white"
nameView.setText(name); android:textSize="50sp"
nameView.setTextSize(16); app:layout_constraintBottom_toBottomOf="parent"
nameView.setTextColor(Color.BLACK); app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
nameView.setGravity(android.view.Gravity.CENTER); app:layout_constraintTop_toTopOf="parent"
nameView.setPadding(8, 8, 8, 8); app:layout_constraintVertical_bias="0.0" />
// Add name to row <View
memberRow.addView(nameView); android:id="@+id/view"
groupsContainer.addView(memberRow); android:layout_width="412dp"
} android:layout_height="508dp"
} android:background="@color/groupColor3"
app:layout_constraintBottom_toBottomOf="parent"
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 9 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
app:layout_constraintStart_toStartOf="parent" <TextView
app:layout_constraintTop_toBottomOf="@+id/textView" /> android:id="@+id/resultTextView"
android:layout_width="0dp"
<EditText android:layout_height="wrap_content"
android:id="@+id/quantityInput" android:layout_margin="16dp"
android:layout_width="294dp" android:gravity="center"
android:layout_height="49dp" android:text=""
android:layout_marginBottom="32dp" android:textColor="@android:color/white"
android:background="@drawable/editextbkg" android:textSize="20sp"
android:hint="Enter number of names" android:textStyle="bold"
android:inputType="number"
android:textAlignment="center" app:layout_constraintBottom_toTopOf="@id/buttonContainer"
android:textColor="@color/black" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@+id/submitButton"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/scrollView" />
app:layout_constraintHorizontal_bias="0.623"
app:layout_constraintStart_toStartOf="parent" /> <LinearLayout
android:id="@+id/buttonContainer"
<Button android:layout_width="0dp"
android:id="@+id/submitButton" android:layout_height="wrap_content"
android:layout_width="133dp" android:layout_marginBottom="68dp"
android:layout_height="48dp" android:gravity="center"
android:layout_marginBottom="428dp" android:orientation="horizontal"
android:background="@drawable/editextbkg" android:padding="16dp"
android:fontFamily="sans-serif-black" app:layout_constraintBottom_toBottomOf="parent"
android:text="Submit" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintBottom_toBottomOf="@+id/generateButt app:layout_constraintStart_toStartOf="parent" />
on"
app:layout_constraintEnd_toEndOf="parent" <Button
app:layout_constraintStart_toStartOf="parent" /> android:id="@+id/generateButton"
android:layout_width="149dp"
<!-- New TextView for displaying the result --> android:layout_height="49dp"
android:layout_marginBottom="16dp"
<ScrollView android:background="@drawable/editextbkg"
android:id="@+id/scrollView" android:text="Generate"
android:layout_width="410dp" app:layout_constraintBottom_toBottomOf="parent"
android:layout_height="300dp" app:layout_constraintEnd_toEndOf="parent"
android:contentDescription="List for name input" app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintBottom_toTopOf="@id/resultTextView"
app:layout_constraintEnd_toEndOf="parent" </androidx.constraintlayout.widget.ConstraintLayout>
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" Main Code
app:layout_constraintTop_toBottomOf="@id/submitButton" package com.example.randomizeapp;
app:layout_constraintVertical_bias="0.989">
import android.content.Intent;
<LinearLayout import android.os.Bundle;
android:id="@+id/nameContainer" import android.view.View;
android:layout_width="match_parent" import android.widget.Button;
android:layout_height="wrap_content" import android.widget.EditText;
android:orientation="vertical" import android.widget.LinearLayout;
android:padding="16dp" /> import android.widget.ScrollView;
</ScrollView> import android.widget.TextView;
import android.widget.Toast;
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 10 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
nameField.setHint("Name " + (i + 1));
import androidx.appcompat.app.AppCompatActivity; nameContainer.addView(nameField);
nameFields.add(nameField);
import java.util.ArrayList; }
import java.util.Random; });
public class RandomizeName extends AppCompatActivity { // Handle the Generate button
generateButton.setOnClickListener(view -> {
private EditText quantityInput; ArrayList<String> names = new ArrayList<>();
private LinearLayout nameContainer; for (EditText nameField : nameFields) {
private Button submitButton, generateButton, backButton; String name = nameField.getText().toString().trim();
private TextView resultTextView; if (!name.isEmpty()) {
private ArrayList<EditText> nameFields = new ArrayList<>(); names.add(name);
}
@Override }
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); if (names.isEmpty()) {
setContentView(R.layout.activity_randomize_name); Toast.makeText(this, "Please enter at least one
name", Toast.LENGTH_SHORT).show();
// Connect XML views to Java objects return;
quantityInput = findViewById(R.id.quantityInput); }
nameContainer = findViewById(R.id.nameContainer);
submitButton = findViewById(R.id.submitButton); Random random = new Random();
generateButton = findViewById(R.id.generateButton); String randomName =
backButton = findViewById(R.id.backButton); names.get(random.nextInt(names.size()));
resultTextView = findViewById(R.id.resultTextView); resultTextView.setText("Generated Name: " +
randomName);
});
// Handle the Submit button
submitButton.setOnClickListener(view -> {
String quantityText = backButton.setOnClickListener(new
quantityInput.getText().toString().trim(); View.OnClickListener() {
if (quantityText.isEmpty()) { @Override
Toast.makeText(this, "Enter a valid number of public void onClick(View view) {
names", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(RandomizeName.this,
return; dashboardMenu.class);
} finish();
nameContainer.removeAllViews();
int quantity; nameFields.clear();
try { quantityInput.setText("");
quantity = Integer.parseInt(quantityText); resultTextView.setText("");
if (quantity <= 0) { }
Toast.makeText(this, "Enter a positive number", }); }
Toast.LENGTH_SHORT).show(); }
return;
} Random Numbers
} catch (NumberFormatException e) {
Toast.makeText(this, "Enter a valid number",
Toast.LENGTH_SHORT).show();
Xml
return;
} <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
nameContainer.removeAllViews(); xmlns:android="http://schemas.android.com/apk/res/android"
nameFields.clear(); android:id="@+id/main"
android:layout_width="match_parent"
for (int i = 0; i < quantity; i++) { android:layout_height="match_parent"
EditText nameField = new EditText(this); android:background="@drawable/numbers2"
android:padding="16dp">
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 11 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
android:id="@+id/randomNumberText"
<!-- Title TextView --> android:layout_width="127dp"
android:layout_height="84dp"
<!-- Back Button --> android:layout_marginStart="205dp"
android:layout_marginTop="16dp"
<TextView android:textAlignment="center"
android:id="@+id/titleTextView" android:textColor="@color/white"
android:layout_width="311dp" android:textSize="48sp" />
android:layout_height="150dp"
android:layout_alignParentStart="true" <TextView
android:layout_alignParentTop="true" android:id="@+id/randomizeInstructionText"
android:layout_alignParentEnd="true" android:layout_width="match_parent"
android:layout_marginStart="76dp" android:layout_height="wrap_content"
android:layout_marginTop="34dp" android:layout_marginBottom="8dp"
android:layout_marginEnd="39dp" android:text="Enter the range for randomization:"
android:fontFamily="@font/bagel_fat_one" android:textAlignment="center"
android:paddingBottom="16dp" android:textColor="@color/black"
android:text="Randomize Number" android:textSize="18sp" />
android:textAlignment="center"
android:textColor="@color/white" <EditText
android:textSize="50sp" android:id="@+id/minNumber"
android:textStyle="bold" /> android:layout_width="match_parent"
android:layout_height="85dp"
<Button android:background="@drawable/editextbkg"
android:id="@+id/back" android:hint="Enter minimum number"
android:layout_width="48dp" android:inputType="number"
android:layout_height="50dp" android:textAlignment="center"
android:layout_alignParentStart="true" android:textColor="@color/black" />
android:layout_marginTop="8dp"
android:background="@drawable/back" <!-- Generate Button -->
android:backgroundTint="@color/white" <EditText
android:text="back" android:id="@+id/maxNumber"
android:textColor="@color/white" android:layout_width="match_parent"
android:textSize="8sp" /> android:layout_height="76dp"
android:background="@drawable/editextbkg"
<!-- LinearLayout for the input fields and generate button --> android:hint="Enter maximum number"
android:inputType="number"
<LinearLayout android:textAlignment="center"
android:layout_width="395dp" android:textColor="@color/black" />
android:layout_height="466dp"
android:layout_alignParentStart="true" <Button
android:layout_alignParentEnd="true" android:id="@+id/generateButton"
android:layout_alignParentBottom="true" style="@style/Widget.AppCompat.Button"
android:layout_marginStart="0dp" android:layout_width="match_parent"
android:layout_marginTop="214dp" android:layout_height="84dp"
android:layout_marginEnd="0dp" android:background="@drawable/editextbkg"
android:layout_marginBottom="59dp" android:text="Generate Random Number" />
android:orientation="vertical">
</LinearLayout>
<!-- TextView placed above the Minimum Number
EditText --> </RelativeLayout>
<!-- Minimum Number EditText --> Main code
<!-- Maximum Number EditText --> package com.example.randomizeapp;
<TextView import android.content.Intent;
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 12 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
import android.os.Bundle;
import android.view.View; ViewCompat.setOnApplyWindowInsetsListener(findViewById(
import android.widget.Button; R.id.main), (v, insets) -> {
import android.widget.EditText; Insets systemBars =
import android.widget.TextView; insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top,
import androidx.activity.EdgeToEdge; systemBars.right, systemBars.bottom);
import androidx.appcompat.app.AppCompatActivity; return insets;
import androidx.core.graphics.Insets; });
import androidx.core.view.ViewCompat; }
import androidx.core.view.WindowInsetsCompat;
private void generateRandomNum() {
import java.util.Random; String minInput = minNumber.getText().toString();
String maxInput = maxNumber.getText().toString();
public class randomnumbergenerator extends
AppCompatActivity { if (!minInput.isEmpty() && !maxInput.isEmpty()) {
private EditText minNumber; int min = Integer.parseInt(minInput);
private EditText maxNumber; int max = Integer.parseInt(maxInput);
private TextView randomNumberTextView;
private Button generate; if (min >= max) {
private Button backButton; randomNumberTextView.setText("Min must be less
than Max.");
@Override return;
protected void onCreate(Bundle savedInstanceState) { }
super.onCreate(savedInstanceState);
Random random = new Random();
setContentView(R.layout.activity_randomnumbergenerator); int randomNumber = random.nextInt((max - min) + 1) +
min; // Generate number between min and max
EdgeToEdge.enable(this);
randomNumberTextView.setText(String.valueOf(randomNumb
// Initialize UI elements er));
minNumber = findViewById(R.id.minNumber); } else {
maxNumber = findViewById(R.id.maxNumber); randomNumberTextView.setText("Please enter both
randomNumberTextView = numbers.");
findViewById(R.id.randomNumberText); }
generate = findViewById(R.id.generateButton); }
backButton = findViewById(R.id.back); }
// Set up the back button listener Android Manifest
backButton.setOnClickListener(new
View.OnClickListener() {
<?xml version="1.0" encoding="utf-8"?>
@Override
<manifest
public void onClick(View view) {
xmlns:android="http://schemas.android.com/apk/res/android"
Intent intent = new
xmlns:tools="http://schemas.android.com/tools">
Intent(randomnumbergenerator.this, dashboardMenu.class);
finish();
<application
android:allowBackup="true"
// Set up the generate button listener
generate.setOnClickListener(new View.OnClickListener()
android:dataExtractionRules="@xml/data_extraction_rules"
{
android:fullBackupContent="@xml/backup_rules"
@Override
android:icon="@mipmap/randomapp"
public void onClick(View view) {
android:label="@string/app_name"
generateRandomNum();
android:roundIcon="@mipmap/randomapp_round"
}
android:supportsRtl="true"
});
android:theme="@style/Theme.RandomizeApp"
tools:targetApi="31">
// Handle window insets
<activity
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 13 of 14
.
Republic of the Philippines
BOHOL ISLAND STATE UNIVERSITY
Magsija, Balilihan 6342, Bohol, Philippines
Office of the Director of Instruction
Balance I Integrity I Stewardship I Uprightness
ELEC 3: APPLICATION DEVELOPMENT USING ANDROID PLATFORM
android:name=".lastActivity"
android:exported="false" />
<activity
android:name=".FillNames"
android:exported="false" />
<activity
android:name=".nameGenerator"
android:exported="false" />
<activity
android:name=".MainActivity"
android:exported="true" />
<activity
android:name=".dashMain"
android:exported="true"
android:theme="@style/Theme.Design.NoActionBar">
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".dashboardMenu" />
<activity android:name=".random_group2" /> <!-- Added
windowSoftInputMode for this activity -->
<activity
android:name=".RandomizeName"
android:windowSoftInputMode="adjustPan" />
<activity android:name=".randomnumbergenerator" />
<meta-data
android:name="preloaded_fonts"
android:resource="@array/preloaded_fonts" />
</application>
</manifest>
F-AQA-INS-001 | Rev. 2 | 07/01/24 | Page 14 of 14