从片段创建 android 个库

creating android library from fragment

我有一个片段,我想将它用作其他项目中的库。 我创建了一个库模块,并将我所有的片段代码和资源复制粘贴到库模式,然后为了使用该库模块,我在 activity 的 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" />

并在 java 文件中

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

视觉库模块工作正常,但我无法从库模块中获取数据

项目githuburlhttps://github.com/dhirunand/meter--number-picker

当您使用 new MeterFragment() 行时,您正在创建 NEW 片段,而不是使用附加到 FragmentContainerView 的片段。这个 NEW 一个在屏幕上不可见,它只是在内存中创建,没有显示(因为你没有发布附加代码),所以 getSelectedNumber() 将 return 默认值而不是这个设置在 MeterFragment 附加到 FragmentContainerView

您应该通过

从XML获得这个“真实的”现有可见实例
FragmentContainerView fcv = (FragmentContainerView) findViewById(R.id.fragmentContainerView);
MeterFragment meterFragment = (MeterFragment) fcv.getFragment();