【问题标题】:How to call a fragments method from an Activity in android如何从android中的Activity调用片段方法
【发布时间】:2019-03-24 06:16:16
【问题描述】:

首先要说这个问题不是重复的,因为我已经看过所有问题并且没有解决方案适合我。 我的问题是我不知道如何从我拥有的其他活动中调用片段的“RefreshMapList”方法,谢谢您的帮助!

Fragment的方法:

public void RefreshMapList(){
        if (MapList == 0) {
            MapFragment fragment = (MapFragment) getFragmentManager().findFragmentById(R.id.simpleFrameLayout);
            fragment.RefreshMap();
        }
        else if (MapList == 1) {
            Gallery_Fragment fragment = (Gallery_Fragment) getFragmentManager().findFragmentById(R.id.simpleFrameLayout);
            fragment.RefreshList();
        }
        else {
            MapFragment fragment = (MapFragment) getFragmentManager().findFragmentById(R.id.simpleFrameLayout);
            fragment.RefreshMap();
            Gallery_Fragment fragment2 = (Gallery_Fragment) getFragmentManager().findFragmentById(R.id.simpleFrameLayout);
            fragment2.RefreshList();
        }
    }

【问题讨论】:

  • 它告诉我:java.lang.NullPointerException: Attempt to call virtual method 'android.support.v4.app.Fragment android.support.v4.app.FragmentManager.findFragmentById(int)' on a空对象引用
  • “来自其他活动”?
  • 应用停止工作
  • @Budha600 因为你指向一个空片段,当你执行代码时它甚至不存在,调试它并确保你指向正确的 ID。

标签: android android-studio android-fragments android-activity methods


【解决方案1】:

您的问题与this重复

这就是你要找的答案

FragmentManager fm = getSupportFragmentManager();

//if you added fragment via layout xml
YourFragmentClass fragment = (YourFragmentClass)fm.findFragmentById(R.id.your_fragment_id);
fragment.yourPublicMethod();

【讨论】:

    【解决方案2】:

    试试这个..

                     Fragment mapFragment = getSupportFragmentManager().findFragmentById(R.id.simpleFrameLayout);
                        if (mapFragment instanceof MapFragment) {
                            ((MapFragment) mapFragment).RefreshMap();
                        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多