当前位置: 首页 > 知识库问答 >
问题:

从片段[重复]内部调用活动方法

罗允晨
2023-03-14

我试图从碎片屏幕调用一个活动中的方法。

我有一个名为myMethod()的方法,它位于名为MyActivity的活动中;我有一个片段叫做Screen1Fragment。

我想给我的活动打电话。从Screen1Fragment内部创建myMethod(),但我不确定如何执行此操作。

以前,Screen1Fragment是一个活动,因此我扩展了MyActivity,以便可以直接调用myMethod()。但是我不得不将活动更改为一个片段,以便使用滑动标签。

提前谢谢。

共有3个答案

田嘉澍
2023-03-14

如果该方法是MainActivity的静态方法,则类似于:

    public static void someMethod(){}

那么,这就相当简单了。就打电话

   MainActivity.someMethod()

然而,我猜您真正想要的是从活动类访问一些函数。然后,您可以在片段视图创建器中使用以下代码

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState){

        container.getContext().someMethod();

   }
施俊哲
2023-03-14

你应该让你的片段完全独立于你所连接的活动。Fragments的要点是,您可以在不同的上下文中通过不同的活动重用它们。为了实现这一点,并且仍然能够从您的活动中调用方法,请使用官方留档中推荐的以下模式。

在你的片段中:

>

public interface MyFragmentCallback{
    public void theMethod();
}

定义字段并获取强制转换引用:

private MyFragmentCallback callback;
public void onAttach(Activity activity){
    callback = (MyFragmentCallback) activity
    super.onAttach(activity);
}

在你的活动中

  • 在类定义中实现MyFragmentCallback
  • 在您的活动中实现method()(Eclipse将要求您这样做)

然后,可以从片段中调用call Back.the方法()

这与简单地在getActivity()上调用方法的区别在于,片段不再与此特定活动配对。因此,您可以将其与其他活动一起重复使用,例如一个用于手机,另一个用于平板电脑。

贺福
2023-03-14

在片段中使用getActivity()

MyActivity activity = (MyActivity) getActivity();
activity.myMethod();

如果您不确定您的片段是否附加到MyActivity,那么

 Activity activity = getActivity();
 if(activity instanceof MyActivity){
      MyActivity myactivity = (MyActivity) activity;
      myactivity.myMethod();
 }
 类似资料:
  • fragment类主活动/主活动如何限制我的主活动在从片段的最后一页返回到主活动时不返回到片段的最后一页,就像我有一个主活动,单击按钮该主活动会导致另外3个活动,其中一个活动有片段。片段的最后一页指向home activity,但当我在home activity上后退时,它再次将我引导到片段的最后一页,然后我再次按下back按钮,然后我的应用程序关闭

  • 我在片段类中有方法。我想从主活动中调用该方法,但不想使用FragmentById(或)FragmentByTag。 我的碎片方法: 如何在不使用FragmentById(或)FragmentByTag的情况下从主活动调用上述方法?

  • 如何限制我的主要活动不返回片段的最后一页,一旦从片段的最后一页返回到主要活动,就像我有一个主活动一样,单击按钮,该主活动会导致另外3个活动,其中一个活动有片段。片段的最后一页指向home activity,但当我在home activity上后退时,它再次将我引导到片段的最后一页,然后我再次按下back按钮,然后我的应用程序关闭 我的主要活动课 公共类主页扩展应用程序活动{ } 我零星的寻呼机 公

  • 我想从AlertDialog的setPositiveButton()方法内部的片段调用一个方法,该方法用于返回DialogFragment的对话框,但不能这样做。 我在一个名为Test的类中有doSomething()方法,该类扩展了Fragment。在这个类中,我有一个扩展DialogFragment的内部类。在方法onCreateDialog中,问题就发生在这里。查看代码: 对话片段和片段来自

  • 我的Android应用程序有问题,我正在使用Android StudioIDE进行开发。差不多是当我把应用程序放在后台几分钟,或者被系统杀死,或者我混合了片段的不同布局时。我在下面放了一张图片: 如果你有其他人也写的话,我已经尝试了各种方法。提前谢谢你。