gpt4 book ai didi

java - 从 Android 中的 FragmentActivity 类访问 Fragment 类方法

转载 作者:行者123 更新时间:2023-12-01 12:56:27 25 4
gpt4 key购买 nike

我正在尝试从 FragmentActivity 类实现访问 Fragment 方法并更改该 Fragment 布局中的一些 TextView。

我的 MainActivity 扩展了 FragmentActivty (v4) 及其布局 -> Activity_main.xml:

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>

SelectionFragment 类扩展具有 updateLoadMembersData() 方法 (v4) 的 Fragment 及其布局 -> Selection_fragment.xml其中包含 、 标签等。


在 MainActivity 类中,我尝试运行以下代码:

protected void onResume() {
super.onResume();

viewPager.setCurrentItem(0);
SelectionFragment instanceFragment = (SelectionFragment) getSupportFragmentManager().findFragmentById(R.layout.selection_fragment);
instanceFragment.updateLoadMembersData();
Toast.makeText(this, "Saved Data Succesfully Added!", Toast.LENGTH_LONG);


}


instanceFragment.updateLoadMembersData();

此方法尝试更改一些 textViews editTexts 等我无法运行此方法。

但是我遇到了诸如 ClassCastException 之类的错误,我看了一些类似的问题,但找不到合理的解决方案。我没有 fragment/fragment 标签,我在 Activity_main 中只有/android.support.v4.view.ViewPager 。 xml。

最佳答案

您不应该向 getFragmentById() 提供布局文件 ID。您应该使用布局文件中声明的 fragment 的实际 id(即 xml 中 fragment 的 android:id 属性指定的 ID)。

无论如何,访问viewPager的fragment的正确原因是通过它的PageAdapter,而不是直接通过FragmentManager。使用您的方法可能会起作用,但不能保证且不安全。

关于java - 从 Android 中的 FragmentActivity 类访问 Fragment 类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23846950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com