0% found this document useful (0 votes)
9 views23 pages

Hanzala - Lab 6

This document contains a lab report on mobile app development by Hanzala Malik, including XML layout files and Java code for a simple Android application. It describes the structure of the main activity and a fragment, detailing UI components such as ImageView, TextView, ScrollView, and RadioGroup. The report also includes code snippets for handling user interactions within the fragment, specifically responding to radio button selections.

Uploaded by

numl-f23-20997
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views23 pages

Hanzala - Lab 6

This document contains a lab report on mobile app development by Hanzala Malik, including XML layout files and Java code for a simple Android application. It describes the structure of the main activity and a fragment, detailing UI components such as ImageView, TextView, ScrollView, and RadioGroup. The report also includes code snippets for handling user interactions within the fragment, specifically responding to radio button selections.

Uploaded by

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

Mobile App Development

Lab Report 06

Hanzala Malik
BSCS-RC-133
BSCS 1 eve

Department of Computer Science


NUML, Rawalpindi
Lab task:

activity_main.xml

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


<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/and
roid" xmlns:app="http://schemas.android.com/apk/res-
auto" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="159dp"
android:layout_height="223dp"
android:layout_marginLeft="@dimen/image_left_mar
gin" android:layout_marginTop="250dp"
android:scaleType="centerCrop"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/img" />
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_wide
"
android:layout_marginLeft="@dimen/margin_wid
e"
android:layout_marginRight="@dimen/margin_wi
de"
android:layout_marginStart="@dimen/margin_wi
de" android:text="@string/title"
android:textStyle="bold|italic"

android:textAppearance="@style/
Base.TextAppearance.AppCompat.Medium"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toRightOf="@+id/imageView"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/imageView"/>
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginRight="@dimen/standard_marg
in"
android:layout_marginEnd="@dimen/standard_margin
" app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="@dimen/standard_margin
"
app:layout_constraintTop_toBottomOf="@+id/title"
android:layout_marginLeft="0dp"
android:layout_marginStart="0dp"
app:layout_constraintLeft_toLeftOf="@+id/title"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/standard_mar
gin">
<TextView
android:id="@+id/article"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/article"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="288dp"/>
</ScrollView>
<fragment
android:id="@+id/fragment"
android:name="com.example.assignment2.SimpleFragm
ent" android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout="@layout/fragment_simple" />
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java
package com.example.assignment2;
import
androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

Fragment.XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/
android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@color/my_fragment_color"
tools:context=".SimpleFragment">
<!-- TODO: Update blank fragment layout -->
<TextView
android:id="@+id/fragment_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question_article"

android:textAppearance="@style/
Base.TextAppearance.AppCompat.Medium"
android:textColor="@color/white"
android:padding="4dp" />
<RadioGroup
android:id="@+id/radio_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radio_button_yes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:text="@string/yes"
android:textColor="@color/white" />
<RadioButton
android:id="@+id/radio_button_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:text="@string/no"
android:textColor="@color/white" />
</RadioGroup>
</LinearLayout>

Fragment.java:

package
com.example.assignment2;
import android.os.Bundle;
import
androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import
android.widget.RadioGroup;
import
android.widget.RatingBar;
import
android.widget.TextView;
import android.widget.Toast;
public class SimpleFragment extends Fragment {
private static final int YES = 0;
private static final int NO = 1;
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";

private String mParam1;


private String mParam2;

public SimpleFragment() {
}

public static SimpleFragment newInstance(String param1,


String param2) {
SimpleFragment fragment = new SimpleFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 =
getArguments().getString(ARG_PARAM1); mParam2
= getArguments().getString(ARG_PARAM2);
}
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup
container,
Bundle savedInstanceState) {
final View rootView =
inflater.inflate(R.layout.fragment_simple,
container, false);
final RadioGroup radioGroup =
rootView.findViewById(R.id.radio_group);
radioGroup.setOnCheckedChangeListener(new
RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int
checkedId)
{ View radioButton =
radioGroup.findViewById(checkedId); int index =
radioGroup.indexOfChild(radioButton); TextView
textView =
rootView.findViewById(R.id.fragment_header);
switch (index) {
case YES: // User chose "Yes."
textView.setText(R.string.yes_message);
break;
case NO: // User chose "No."
textView.setText(R.string.no_message);
break;
default: // No choice made.
break;
}
}
});
return rootView;
}
}
Output:
MMeyHeM
1-/0ni?'i' H':'I I=:8 :SDai'll ll
·1 i Lu·i111 i:r;:in;:i l l .,.j (.111
r:-:?r,:-,;,,::rr.;:11.::d t: • .:i,1,:-:i,:
Pn;:i-_ni:i:::erte;; t'.:: 1 -.....
\)fl i;!I ep.afl=iJ 11€:IEl ::I
b' lh-:! P·,:ik::.:.rJr. Ci'IL: QII
Lin.:
1«1 "".1l\tm· msr-.:i n ,:nr.
)re :::r 1t.e f":!1K01Si:;8n,
lull f·v1· .l1i:-p • f1 i..:.i
,:if r.n:! rlit r. rr:b:1crr.,
l k:.,v lhi=-;;·:::r · t"::1i"...1(1
i)l:lr!?l:ll•H-rl:'-lke-l:»1k:in
-::mr.:·1e-iL"!:--:JII i!l'I urm..:li,d,.-'.!
,;-;rr,:1.--.-il.1r:t-h;i!:li:r:,
llnE' l r[)';c c1rd
hl::idt'n G"li!lldJ(I:"' IIIDli ·
LUil fu (:Jr-1(:lc:,iit/
Lab Assignment:
activity_main.xml:

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


<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/and
roid" xmlns:app="http://schemas.android.com/apk/res-
auto" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="159dp"
android:layout_height="223dp"
android:layout_marginLeft="@dimen/image_left_mar
gin" android:layout_marginTop="250dp"
android:scaleType="centerCrop"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/img" />
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_wide
"
android:layout_marginLeft="@dimen/margin_wid
e"
android:layout_marginRight="@dimen/margin_wi
de"
android:layout_marginStart="@dimen/margin_wi
de" android:text="@string/title"
android:textStyle="bold|italic"

android:textAppearance="@style/
Base.TextAppearance.AppCompat.Medium"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toRightOf="@+id/imageView"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/imageView"/>
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginRight="@dimen/standard_marg
in"
android:layout_marginEnd="@dimen/standard_margin
" app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="@dimen/standard_margin
"
app:layout_constraintTop_toBottomOf="@+id/title"
android:layout_marginLeft="0dp"
android:layout_marginStart="0dp"
app:layout_constraintLeft_toLeftOf="@+id/title"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/standard_mar
gin">
<TextView
android:id="@+id/article"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/article"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="288dp"/>
</ScrollView>
<fragment
android:id="@+id/fragment"
android:name="com.example.assignment2.SimpleFragm
ent" android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout="@layout/fragment_simple" />
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java
package com.example.assignment2;
import
androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

Fragment.xml:

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


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/
android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/colorAccent"
tools:context=".SimpleFragment">
<!-- TODO: Update blank fragment layout -->
<TextView
android:id="@+id/fragment_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question_article"

android:textAppearance="@style/
Base.TextAppearance.AppCompat.Medium"
android:textColor="@color/white"
android:padding="4dp" />
<RadioGroup
android:id="@+id/radio_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radio_button_yes"
android:layout_width="wrap_content"

android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:text="@string/yes"
android:textColor="@color/white" />
<RadioButton
android:id="@+id/radio_button_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:text="@string/no"
android:textColor="@color/white" />

</RadioGroup>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"> <!-- Replace
with
your
desired color code -->
<TextView
android:id="@+id/textView_like_song"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4dp"
android:layout_marginBottom="10dp"
android:text="@string/question_next"

android:textAppearance="@style/
Base.TextAppearance.AppCompat.Medium"
android:textColor="@color/white" />
<RatingBar
android:id="@+id/ratingBar_song"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textView_like_song"
android:layout_centerHorizontal="true"
android:numStars="5"
android:stepSize="1.0"
android:isIndicator="false" />
</RelativeLayout>
</LinearLayout>

Fragment.java:

package
com.example.assignment2;
import android.os.Bundle;
import
androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import
android.widget.RadioGroup;
import
android.widget.RatingBar;
import
android.widget.TextView;
import android.widget.Toast;
public class SimpleFragment extends Fragment {
private static final int YES = 0;
private static final int NO =
1;

private static final String ARG_PARAM1 = "param1";


private static final String ARG_PARAM2 = "param2";

private String mParam1;


private String mParam2;
public SimpleFragment() {

public static SimpleFragment newInstance(String param1,


String param2) {
SimpleFragment fragment = new SimpleFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 =
getArguments().getString(ARG_PARAM1); mParam2
= getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup
container,
Bundle savedInstanceState) {

final View rootView =


inflater.inflate(R.layout.fragment_simple,
container, false);
final RadioGroup radioGroup
=
rootView.findViewById(R.id.radio_group);
radioGroup.setOnCheckedChangeListener(new
RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int
checkedId) {
View radioButton =
radioGroup.findViewById(checkedId); int index =
radioGroup.indexOfChild(radioButton); TextView
textView =
rootView.findViewById(R.id.fragment_header)
; switch (index) {
case YES: // User chose "Yes."
textView.setText(R.string.yes_message);
break;
case NO: // User chose "No."
textView.setText(R.string.no_message);
break;
default: // No choice made.

break;
}

}
});

RatingBar ratingBar = rootView.findViewById(R.id.ratingBar_song);

ratingBar.setOnRatingBarChangeListener(new
RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar,
float rating, boolean fromUser) {
if (fromUser) {
Toast.makeText(getActivity(), "Rating: " +
String.valueOf(rating), Toast.LENGTH_SHORT).show();
}
}
});
return rootView;
}

}
Output:

You might also like