Это функция в коде DragFrame.class:
public void setFragment(FragmentManager fm, Fragment fragment) {
fm.beginTransaction().add(R.id.frame_drag, fragment).commitAllowingStateLoss();
}
DragFrame.class - это пользовательский вид, используемый для включения фрейма перетаскивания. И я добавил это настраиваемое представление в файл activity_main.xml:
<com.android.example.exercise.Drag.DragFrame
android:id="@+id/drag_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
. В свой класс MainActivity.class я поместил этот код:
dragFrame = (DragFrame) findViewById(R.id.drag_frame);
dragFrame.setFragment(getSupportFragmentManager(), new DragFragment());
dragFrame.setOnDragListener(this);
dragFrame.close();
Но произошла ошибка, и содержание ошибкивот так:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.android.example.exercise.Drag.DragFrame.setFragment(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment)' on a null object reference
at com.android.example.exercise.activities.MainActivity.onCreate(MainActivity.java:78)
Строка 78 - это dragFrame.setFragment(getSupportFragmentManager(), new DragFragment);
. В чем проблема в моем коде ?? Я пытался поместить код в MainActivity.class:
if (dragFrame != null && getSupportFragmentManager() != null) {
dragFrame.setFragment(getSupportFragmentManager(), new DragFragment());
dragFrame.setOnDragListener(this);
dragFrame.close();
}
Но он не работает;Как я могу исправить этот код ??