Java 调用片段方法时的空对象引用

Java 调用片段方法时的空对象引用,java,android,Java,Android,我得到这个错误: Attempt to invoke virtual method 'void com.example.standa.vecerkaFirestore.MapFragment.testMethod()' on a null object reference 当我在片段中调用该方法时,一切正常,但当我从另一个活动调用该方法时,它会抛出空指针 为什么会这样 从中调用方法的活动代码 public View onCreateView(LayoutInflater inflat

我得到这个错误:

    Attempt to invoke virtual method 'void com.example.standa.vecerkaFirestore.MapFragment.testMethod()' 
on a null object reference
当我在片段中调用该方法时,一切正常,但当我从另一个活动调用该方法时,它会抛出空指针

为什么会这样

从中调用方法的活动代码

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.botton_sheet_layout, container, false);
    final MapFragment frg = (MapFragment)
            getFragmentManager().findFragmentById(R.id.map);

    final Switch switch_open = v.findViewById(R.id.switch_open);

    switch_open.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (switch_open.isChecked()){
                frg.testMethod();

            }else{

            }
        }
    });
这是地图片段的代码:

   public class MapFragment extends Fragment implements OnMapReadyCallback {
    public void onMapReady(GoogleMap googleMap) {

    public void testMethod(){
        double longitude = 14.450388;//location.getLongitude();
        double latitude =50.085913;// location.getLatitude();
        LatLng testerloc=new LatLng(latitude,longitude);

        map.addMarker(new MarkerOptions().position(testerloc).title("yesCardOpen").snippet(""));


    }
}
}
我只包括测试方法。

获取当前活动的fragmentManager。这就是它返回null的原因


您可能应该做的是创建一个
侦听器
,以便从第二个活动到映射片段进行通信。

如何附加片段?另外,该
onCreateView()
方法不是来自活动。