I'm trying to call a function of a given fragment from the outside: both from the main activity and from another fragment of the same level. In both cases the fragment retrieved with findFragmentById is null. I also tried with findFragmentByTag but with the same result.
CALL FOR TARGET FRAGMENT FUNCTION
FragmentManager fm = getFragmentManager();//if added by xml
MainFragmentLDash2 myFragment = (MainFragmentLDash2) getFragmentManager().findFragmentById(R.id.fd2);
if(myFragment == null){
Toast.makeText(getContext(), "null", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getContext(), "ok", Toast.LENGTH_LONG).show();
myFragment.mediaDraw();
}
FUNCTION IN THE TARGET FRAGMENT I WANT TO CALL
public void mediaDraw() {
Toast.makeText(getContext(), "drawFRAGMENT2", Toast.LENGTH_SHORT).show();
}
FRAME'S XML
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fd2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:background="@color/transparent"
android:descendantFocusability="beforeDescendants"
android:fillAfter="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:fromYScale="0.0"
android:gravity="center_vertical"
android:tag="firstFragmentWrapperDash2">
</FrameLayout>
LOGCAT
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
at android.widget.Toast.<init>(Toast.java:109)
at android.widget.Toast.makeText(Toast.java:268)
at design.ubris.myuni.MainFragmentLDash2.mediaDraw(MainFragmentLDash2.java:101)
at design.ubris.myuni.MainFragmentLSegr1.OnAsyncTaskComplete(MainFragmentLSegr1.java:171)
at design.ubris.myuni.URLDataReader.onPostExecute(URLDataReader.java:112)
at design.ubris.myuni.URLDataReader.onPostExecute(URLDataReader.java:26)
at android.os.AsyncTask.finish(AsyncTask.java:692)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:709)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)