0% found this document useful (0 votes)
15 views19 pages

TK2323 Lecture 6 - Fragmentb

The document discusses fragments in Android development. Fragments allow combining multiple components in a single activity, reusing fragments across activities, and better utilizing larger screens. The document covers creating and communicating between fragments in both single-pane and two-pane layouts.

Uploaded by

bavitran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views19 pages

TK2323 Lecture 6 - Fragmentb

The document discusses fragments in Android development. Fragments allow combining multiple components in a single activity, reusing fragments across activities, and better utilizing larger screens. The document covers creating and communicating between fragments in both single-pane and two-pane layouts.

Uploaded by

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

Fragment (b)

TK2323 Mobile Programming


Sem 1 2020/2021

Lam Meng Chun

[email protected] (G-02-04)
2 Why you need Fragment

▹ Combine several fragments


in a single activity
▹ Reuse the same Fragment
across different activity
▹ Make better use of larger
screen space on tablets
▹ Fixed/Scrolling/Swipe tab
displays
3

MasterBeverageFragment BeverageDetailFragment
Main Activity Detail Activity
4

MasterBeverageFragment, BeverageDetailFragment
Main Activity
Create Fragment

5
MasterBeverageFragment
6
BeverageDetailFragment

7
Activity
HoldFragment
(Single Pane)

8
9

MainAcivity
10

DetailActivit
y
11

DetailActivit
y
<androidx.constraintlayout.widget.ConstraintLayout . . .

<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline“ . . .

app:layout_constraintGuide_percent="0.5" />

<fragment
android:id="@+id/fragment"
android:name="com.lmc.playfragment.MasterBeverageFragment"
. . ./>

<FrameLayout
android:id="@+id/fragmentContainer“ . . .
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Communication Between
Fragment (Single Pane)

12
MasterBeverage DetailActivity

public interface OnBeverageClickListener{


void onBeverageSelected(int img, String name);
13 }
FragmentManager fragmentManager = getSupportFragmentManager();
lvBeverage.setOnItemClickListener…{ if(savedInstanceState == null) {
beverageDetailFragment.setBeverageImg(getIntent().getIntExtra(BUNDLE_IMAGE,
mCallback.onBeverageSelected(beverageImageArray[i], 0));
beverageName);
} beverageDetailFragment.setBeverageName(getIntent().getStringExtra(BUNDLE_NAME));
fragmentManager.beginTransaction()
MainActivity .replace(R.id.fragmentContainer, beverageDetailFragment)
.commit();
public class MainActivity extends AppCompatActivity }
implements
MasterBeverageFragment.OnBeverageClickListener

@Override
public void onBeverageSelected(int imgFromFragment,
String nameFromFragment)
{
beverageImg = imgFromFragment;
beverageName = nameFromFragment;}

Bundle bundle = new Bundle();


bundle.putInt(BUNDLE_IMAGE, beverageImg);
bundle.putString(BUNDLE_NAME, beverageName);

final Intent intent = new Intent(MainActivity.this,


DetailActivity.class);
intent.putExtras(bundle);
startActivity(intent);
TwoPane

14
15

MasterBeverageFragment, BeverageDetailFragment
Main Activity
16

DetailActivit
y
<androidx.constraintlayout.widget.ConstraintLayout . . .

<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline“ . . .

app:layout_constraintGuide_percent="0.5" />

<fragment
android:id="@+id/fragment"
android:name="com.lmc.playfragment.MasterBeverageFragment"
. . ./>

<FrameLayout
android:id="@+id/fragmentContainer“ . . .
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
17 Detect two pane
Communication Between
Fragment (TwoPane)

18
MasterBeverage MainActivity

public interface OnBeverageClickListener{


void onBeverageSelected(int img, String name); public class MainActivity extends AppCompatActivity implements
19 }
MasterBeverageFragment.OnBeverageClickListener
lvBeverage.setOnItemClickListener…{ @Override
public void onBeverageSelected(int imgFromFragment, String
mCallback.onBeverageSelected(beverageImageArray[i],
beverageName); nameFromFragment)
} {

beverageImg = imgFromFragment;
beverageName = nameFromFragment;

if (mTwoPane) {
FragmentManager fragmentManager = getSupportFragmentManager();
BeverageDetailFragment beverageDetailFragment = new
BeverageDetailFragment();

beverageDetailFragment.setBeverageImg(beverageImg);
beverageDetailFragment.setBeverageName(beverageName);

fragmentManager.beginTransaction()
.replace(R.id. fragmentContainer , beverageDetailFragment)
.commit();
}

You might also like