从活动中调用片段方法

     2023-04-15     117

关键词:

【中文标题】从活动中调用片段方法【英文标题】:Calling fragment method from activity 【发布时间】:2013-10-20 11:36:41 【问题描述】:

我的项目 ViewPage 中有一个带有两个片段(FragmentView1 和 FragmentView2)。

这是我的 ViewPage MainActivity,它有一个带有菜单的 ActionBar。

在这个菜单中,每个选项都应该调用 FragmentView1 中的方法来更新它。

但我真的不知道该怎么做!

这是我的 FragmentView1 中的方法:

public void loadPoema()
    // my code here

这是我从我的活动中调用它的地方:

@Override
    public boolean onOptionsItemSelected(MenuItem item) 
        // Handle presses on the action bar items
        switch (item.getItemId()) 
            case R.id.actBack:
                postAtual--;   
                        // Here I call the method in FragmentView1          
                return true;
            default:
                return super.onOptionsItemSelected(item);
        
    

在 FragmentView1 中学习有问题的方法用于更新它(非常 Fragment)加载新数据。

再次为我的水平道歉,我正在使用谷歌翻译

编辑

MainActivity XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <android.support.v4.view.ViewPager
       android:id="@+id/viewpager"
       android:layout_
       android:layout_
       android:layout_weight="1">

            <android.support.v4.view.PagerTabStrip
                android:id="@+id/pagerTabStrip"
                android:layout_gravity="bottom"
                android:layout_
                android:layout_
                android:background="#cccccc"/>

    </android.support.v4.view.ViewPager>

</LinearLayout>

片段 XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:padding="@dimen/activity_horizontal_margin"
    android:id="@+id/fragPoema"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/txtTitulo"
        android:layout_
        android:layout_
        android:gravity="center"
        android:textStyle="bold"
        android:textSize="18sp"
        android:textColor="#0099FF"
        android:typeface="serif" />

    <TextView
        android:id="@+id/txtPoema"
        android:layout_
        android:layout_
        android:layout_marginTop="10dp"
        android:textColor="#333333"
        android:layout_gravity="center"
        android:scrollbars="vertical"
        android:typeface="serif" />

</LinearLayout>

和 MainActivity 代码:

private void loadViews()
        mViewPager = (ViewPager) findViewById(R.id.viewpager);

        TitleAdapter titleAdapter = new TitleAdapter(getSupportFragmentManager());
        mViewPager.setAdapter(titleAdapter);
        mViewPager.setCurrentItem(0);
    

【问题讨论】:

您需要保留对您的Fragment 的引用,然后拨打mFragmentView1.loadPoema(); @Phil 我尝试如下调用该方法,而不必实例化:FragmentView1.loadPoema(); 但显然当我想要一些活动时不起作用,只需调用 MainActivity.sameMathone 好吧,起初运行方法调用,但在 FragmentView1 的这个方法中,它运行 mDialog = new ProgressDialog(getActivity());,当我调用 MainActivity 时返回错误,因为 getActivity() 您正试图将local 方法作为static 方法调用。您需要在instancemFragmentView1 上致电loadPoema() @WaltterBarreiroNeto,这绝对不是正确的使用方法。查看this 问题以帮助找出正确的方法。 【参考方案1】:

当您需要片段时,您可以使用findFragmentByTag 获取对它的引用,然后对其执行操作。确保您最初给片段一个标签。它可以由代码或 XML 生成。

编辑:我现在看到您正在使用寻呼机适配器来创建片段。这有点棘手。按照这篇文章提取您正在创建的片段的Tag。 reusing fragments in a fragmentpageradapter

【讨论】:

如何实现这个?抱歉,我有点迷路了。

从片段调用活动方法

】从片段调用活动方法【英文标题】:Callanactivitymethodfromafragment【发布时间】:2012-09-2112:05:18【问题描述】:尝试从片段调用我的活动中的方法。我希望片段提供方法数据并在方法返回时获取数据。我想实现类似于调用静态方法... 查看详情

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

】从片段内部调用活动方法[重复]【英文标题】:CallingActivityMethodFromInsideAFragment[duplicate]【发布时间】:2013-11-1215:36:03【问题描述】:我正在尝试从片段屏幕调用活动中的方法。我有一个名为myMethod()的方法,它位于名为MyActivity... 查看详情

如何从活动中调用片段方法?

】如何从活动中调用片段方法?【英文标题】:Howtocallfragmentsmethodfromactivity?【发布时间】:2021-12-2301:25:38【问题描述】:我希望每个人都做得很好,我是一名初学者级别的Android开发人员,我正在制作一个计数器Android应用程序,... 查看详情

从片段中调用父母的活动

】从片段中调用父母的活动【英文标题】:Callparent\'sactivityfromafragment【发布时间】:2012-12-3012:40:31【问题描述】:如果我在Fragment中,我如何调用父母的活动?【问题讨论】:通过调用getActivity()只需调用getActivity();我做到了。但... 查看详情

从活动中调用片段事件

】从活动中调用片段事件【英文标题】:Callfragmenteventsfromactivity【发布时间】:2011-07-0915:58:51【问题描述】:所以,我让我的片段中的事件传递给活动,那么我该如何做才能让活动轮流通知片段B做某事。当片段A单击列表项时,... 查看详情

如何从android中的活动调用片段方法?

】如何从android中的活动调用片段方法?【英文标题】:Howtocallafragmentmethodfromanactivityinandroid?【发布时间】:2016-10-1105:45:36【问题描述】:我的主活动上有一个选项卡式视图和一个浮动操作按钮。每当我单击浮动操作按钮时,我... 查看详情

从意图活动访问片段方法(代码片段)

我有一个片段,我从片段开始一个活动。现在我想从新活动中的片段调用一个方法。我试图使用接口,但似乎我不能,因为我不在片段中创建一个新活动的对象,让它调用setListener()。我正在使用意图启动新活动。我无法找到如... 查看详情

从活动调用片段方法时出现空指针异常

】从活动调用片段方法时出现空指针异常【英文标题】:nullpointerexceptionwhencallingfragmentmethodsfromactivity【发布时间】:2013-01-1602:37:36【问题描述】:我有一个片段活动,它通过以下方式调用其他片段:FragmentView1f=(FragmentView1)this.get... 查看详情

从 dialogfragment 调用 onBackPressed 完成活动

】从dialogfragment调用onBackPressed完成活动【英文标题】:CallingonBackPressedfromadialogfragmentfinishestheactivity【发布时间】:2022-01-0700:16:13【问题描述】:我有一个对话框片段,上面有一个关闭按钮。这个对话框是从两个不同的活动中调... 查看详情

如何从活动中调用服务的方法?

】如何从活动中调用服务的方法?【英文标题】:HowtocallmethodsofaServicefromactivity?【发布时间】:2011-06-1805:05:51【问题描述】:我只是想从我的活动中调用本地服务的方法。我该怎么做?【问题讨论】:【参考方案1】:这是一个... 查看详情

如何从另一个活动中调用片段

】如何从另一个活动中调用片段【英文标题】:Howtocallafragmentfromanotheractivity【发布时间】:2015-06-1722:21:16【问题描述】:我想从另一个扩展ActionBarActivity或Activity的活动中调用片段我想让它像有意图地从另一个活动中打开一个活... 查看详情

Android:从片段调用时如何从活动中获取返回结果?

】Android:从片段调用时如何从活动中获取返回结果?【英文标题】:Android:HowtogetreturnresultfromactivitywhencallingfromFragment?【发布时间】:2013-09-2709:18:29【问题描述】:我有一个Fragment使用以下方式调用另一个Activity:ProductEditionMainten... 查看详情

从应用程序的主要活动中调用小部件的 onUpdate 方法

】从应用程序的主要活动中调用小部件的onUpdate方法【英文标题】:Callwidget\'sonUpdatemethodfromtheapp\'smainactivity【发布时间】:2011-06-2322:28:08【问题描述】:我正在开发一个包含小部件的Android应用程序。应用程序的主界面是一个简... 查看详情

从 JobIntentService 调用活动方法

】从JobIntentService调用活动方法【英文标题】:CallinganactivitymethodfromaJobIntentService【发布时间】:2020-03-1921:12:17【问题描述】:我想在onHandleWork的for循环中调用一个非静态方法。我怎样才能做到这一点?@OverrideprotectedvoidonHandleWork(@... 查看详情

如何从Android中没有活动和片段的函数调用DialogFragment?

】如何从Android中没有活动和片段的函数调用DialogFragment?【英文标题】:HowtoinvokeDialogFragmentfromfunctionwhichisoutofactivityandfragmentinAndroid?【发布时间】:2020-09-2512:02:22【问题描述】:我有一个名为Dialog的DialogFragment。如何从Android中没... 查看详情

从android中的活动调用片段

】从android中的活动调用片段【英文标题】:Callfragmentfromactivityinandroid【发布时间】:2014-09-0123:32:14【问题描述】:我目前正在处理使用过的片段中的项目。但是在这里,当我从Fragment调用活动类时,它运行良好。我要做的是在Bac... 查看详情

从 FirebaseMessagingService 类调用活动类方法

】从FirebaseMessagingService类调用活动类方法【英文标题】:CallingactivityclassmethodfromFirebaseMessagingServiceclass【发布时间】:2016-12-1109:34:45【问题描述】:如何从fcm服务调用活动类方法。我已经尝试过这种方式CallingactivityclassmethodfromServ... 查看详情

Android:从片段调用活动

】Android:从片段调用活动【英文标题】:Android:CallingActivityfromFragment【发布时间】:2012-09-2004:50:42【问题描述】:我在活动中使用片段。我正在使用MediaRecorder进行录音。我有一个活动的两个部分。第一个本身将列出记录文件的... 查看详情