100% found this document useful (1 vote)
1K views12 pages

Mobile Application Development Past Paper 2024

The document provides an overview of key components in Android app development, including the activity_main.xml file for defining the main activity's UI, the AVD configuration for simulating Android devices, and the getSelectedItem() method for retrieving selected items in GUI components. It also discusses the onResume() method in the Activity lifecycle, LinearLayout for arranging UI elements, and ArrayAdapter for binding data to UI components. Additionally, it includes code examples for implementing an ImageSwitcher and CheckBox in Android applications.

Uploaded by

Jee535io
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
1K views12 pages

Mobile Application Development Past Paper 2024

The document provides an overview of key components in Android app development, including the activity_main.xml file for defining the main activity's UI, the AVD configuration for simulating Android devices, and the getSelectedItem() method for retrieving selected items in GUI components. It also discusses the onResume() method in the Activity lifecycle, LinearLayout for arranging UI elements, and ArrayAdapter for binding data to UI components. Additionally, it includes code examples for implementing an ImageSwitcher and CheckBox in Android applications.

Uploaded by

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

Question no.

01: Write short note on the following:


1) What is activity_main.xml file?
In Android app development, the activity_main.xml file is typically the default layout file that is
used for defining the user interface (UI) for the main activity of an application.

What is an Activity in Android?

An Activity represents a single screen with a user interface. In Android, the main activity (often
called MainActivity) is the first screen or entry point when an app is launched.

The Role of activity_main.xml


The activity_main.xml file is part of the app’s res/layout directory, and it contains the XML code
that defines the layout (UI components) for the main activity. It's where you specify the
elements like buttons, text fields, images, and any other UI components that the user interacts
with on the main screen.

When you create a new Android project in Android Studio, this file is automatically created for
you to define the layout of your MainActivity.

2) What is AVD configuration in android app?


An AVD (Android Virtual Device) is an emulator configuration that lets you run and test Android
apps on a virtual device. It simulates a real Android device on your computer, allowing
developers to test their applications without needing a physical device.

AVD configuration is important for defining the virtual environment (like the device model, OS
version, screen size, and other characteristics) to accurately test the app under different
conditions.

Key settings include:

1. Device Type: Choose from predefined device models (e.g., Pixel, Nexus).

2. System Image: Select the Android version to emulate (e.g., Android 10, 11).

3. Resolution & Screen Size: Define screen size and resolution.

4. CPU/ABI: Choose between x86, x86_64, or ARM.

5. Memory & Storage: Allocate RAM and internal storage.

6. Graphics: Set rendering mode (hardware/software).

7. Additional Settings: Configure camera, sensors, network, and orientation

3) What type of object is return by getSelectedItem()?


The object returned by getSelectedItem() depends on the context or the library you're working
with. However, it is typically used in graphical user interface (GUI) libraries, especially for
selecting items in a list, combo box, or similar UI components.

Here are some common scenarios:

In Java (Swing/AWT):

If you're working with a JComboBox, for instance, getSelectedItem() returns an Object that
represents the currently selected item in the combo box. You would typically cast it to the
appropriate type, like a String, Integer, or a custom object, depending on what items you added
to the combo box.

JComboBox<String> comboBox = new JComboBox<>();

String selectedItem = (String) comboBox.getSelectedItem();

4) What is on Resume() method?


The onResume() method is part of the Activity lifecycle. It is called when the activity is about to
become visible to the user, meaning the activity is in the foreground and interacting with the
user.

When is onResume() called?

• It is called when the activity is coming back to the foreground after being paused or
stopped (e.g., the user navigated away from the app and then returned).

• It is not called when the activity is created for the first time. That would be onCreate()
and onStart().

Typical Use Cases for onResume()

You typically use onResume() for tasks like:

• Reinitializing UI elements that need to be refreshed each time the activity becomes
visible.

• Starting animations or other visual effects that should only occur when the activity is
on-screen.

• Resuming ongoing tasks like network operations, timers, or services that were paused
when the app lost focus.

• Registering receivers for broadcast events (like for location updates or sensor events).

5) What is linear layout?


A LinearLayout is a ViewGroup (a container) that arranges its child views in a single direction:
either vertically or horizontally. It's one of the most commonly used layouts for positioning
elements in a simple, straightforward manner.

Key Characteristics of LinearLayout:

1. Orientation:
o Vertical (android:orientation="vertical"): Arranges child views one below the
other.

o Horizontal (android:orientation="horizontal"): Arranges child views side by side,


from left to right.

2. Child View Arrangement:

o Each child view inside a LinearLayout will be positioned one after another (either
vertically or horizontally).

o The space occupied by each child depends on the layout parameters


(layout_width, layout_height, layout_weight, etc.).

3. Weight:

o The android:layout_weight attribute can be used to distribute space


proportionally among child views. If a child has a layout_weight set, it will take
up extra space, even if its size is otherwise defined as wrap_content.

o For example, if two child views have weights of 1 and 2, the second child will take
up twice as much space as the first one.

6) What is Array Adapter?


An ArrayAdapter is a type of Adapter that provides a way to bind a data source (like an array or
list) to a user interface component, such as a ListView, Spinner, or GridView. It is one of the most
commonly used adapters for displaying simple lists or dropdown menus.

An ArrayAdapter is a subclass of BaseAdapter and is a specific type of Adapter that binds data
(like arrays or ArrayLists) to a UI component. It takes a collection (such as an array or list) of
items and converts each item into a view, which will be displayed in a ListView or other similar
widget.

How Does ArrayAdapter Work?

When you use an ArrayAdapter, it expects:

• Data: An array or a list of items that you want to display.

• Context: A Context (usually the Activity or Application context).

• Layout: A layout file that defines how each item should look (typically a single TextView
for simple data).
Question no. 02: Answer the following questions:

1) Write a code to implement ImageSwitcher component in .xml file.


The setfactory() method of ImageSwitcher provide implementation
of Viewfactory interface implements its unimplemented method
returns an ImageView.
1. XML Layout (activity_main.xml):

<?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">

<!-- ImageSwitcher to display images -->

<ImageSwitcher

android:id="@+id/imageSwitcher"

android:layout_width="match_parent"

android:layout_height="300dp"

android:layout_centerHorizontal="true"

android:layout_marginTop="100dp"/>

<!-- Previous button to switch to the previous image -->

<Button

android:id="@+id/prevButton"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Previous"
android:layout_below="@id/imageSwitcher"

android:layout_alignParentLeft="true"

android:layout_marginTop="20dp"/>

<!-- Next button to switch to the next image -->

<Button

android:id="@+id/nextButton"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Next"

android:layout_below="@id/imageSwitcher"

android:layout_alignParentRight="true"

android:layout_marginTop="20dp"/>

</RelativeLayout>

2. Java Code (MainActivity.java)

package com.example.imageswitcherexample;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.ImageSwitcher;

import android.widget.ImageView;

import android.widget.ViewSwitcher;

import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {

// Array of image resources (use your own images)

private int[] images = {R.drawable.image1, R.drawable.image2, R.drawable.image3};

private int currentIndex = 0; // Keeps track of the current image index

private ImageSwitcher imageSwitcher;

private Button nextButton;

private Button prevButton;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// Initialize the ImageSwitcher

imageSwitcher = findViewById(R.id.imageSwitcher);

// Set the ViewFactory to inflate ImageViews

imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {

@Override

public View makeView() {

// Create an ImageView and set its layout params

ImageView imageView = new ImageView(MainActivity.this);

imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); // Scale the image

imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
ImageSwitcher.LayoutParams.MATCH_PARENT,

ImageSwitcher.LayoutParams.MATCH_PARENT

));

return imageView;

});

// Set the initial image

imageSwitcher.setImageResource(images[currentIndex]);

// Initialize the buttons

nextButton = findViewById(R.id.nextButton);

prevButton = findViewById(R.id.prevButton);

// Set up the Next button to switch to the next image

nextButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// Move to the next image in the array

currentIndex = (currentIndex + 1) % images.length; // Loop back to the first image

imageSwitcher.setImageResource(images[currentIndex]);

});

// Set up the Previous button to switch to the previous image

prevButton.setOnClickListener(new View.OnClickListener() {
@Override

public void onClick(View v) {

// Move to the previous image in the array

currentIndex = (currentIndex - 1 + images.length) % images.length; // Loop back to


the last image

imageSwitcher.setImageResource(images[currentIndex]);

});

Create a file CheckBox.xml and create both default as well as custom check
box in CheckBox.xml file.
1. CheckBox.xml (Layout File)

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="vertical"

android:padding="16dp">

<!-- Default CheckBox -->

<CheckBox

android:id="@+id/defaultCheckBox"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Default CheckBox"
android:textSize="16sp"

android:layout_marginBottom="20dp"/>

<!-- Custom CheckBox -->

<CheckBox

android:id="@+id/customCheckBox"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Custom CheckBox"

android:textSize="16sp"

android:textColor="#FFFFFF"

android:layout_marginBottom="20dp"

android:background="@drawable/custom_checkbox_background"

android:padding="10dp" />

</LinearLayout>

2. Custom Background Drawable (custom_checkbox_background.xml)

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

<shape xmlns:android="http://schemas.android.com/apk/res/android">

<solid android:color="#4CAF50" /> <!-- Green background -->

<corners android:radius="8dp" /> <!-- Rounded corners -->

<size android:width="48dp" android:height="48dp" />

</shape>

How to Use It in Java (MainActivity.java)

package com.example.checkboxexample;
import android.os.Bundle;

import android.widget.CheckBox;

import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private CheckBox defaultCheckBox;

private CheckBox customCheckBox;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// Get the CheckBoxes from the layout

defaultCheckBox = findViewById(R.id.defaultCheckBox);

customCheckBox = findViewById(R.id.customCheckBox);

// Set listeners for both checkboxes

defaultCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {

String message = isChecked ? "Default CheckBox is Checked" : "Default CheckBox is


Unchecked";

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

});
customCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {

String message = isChecked ? "Custom CheckBox is Checked" : "Custom CheckBox is


Unchecked";

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

});

You might also like