creating android library from fragment

Viewed 78

i'm having a fragment that i want to use it as a library in other projects. i created a library module and copy-paste all my fragment code and resources to library mode and then to use that library module i'm writing the following code in activity's xml

<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragmentContainerView"
android:name="com.dhirunand.meter.MeterFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

and in java file

MeterFragment meterFragment = new MeterFragment();
String selectedNumber = meterFragment.getSelectedNumber();

visually library mudule is working fine but i'm not able to fetch data from the library module

project github url https://github.com/dhirunand/meter--number-picker

1 Answers

when you are using new MeterFragment() line then you are creating NEW fragment, not using one attached to FragmentContainerView. this NEW one isn't visible on screen, its just created in memory, not shown (as you haven't posted attaching code), so getSelectedNumber() will return default value instead this set in MeterFragment attached to FragmentContainerView

you should obtain this "real" existing and visible instance from XML by

FragmentContainerView fcv = (FragmentContainerView) findViewById(R.id.fragmentContainerView);
MeterFragment meterFragment = (MeterFragment) fcv.getFragment();
Related