Я сейчас изучаю Android, и в моем текущем проекте я использую фрагмент для загрузки стартовой страницы.
Вот мой FrameLayout:
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" /><![CDATA[
/>
Я использую пустоту в своей деятельности, чтобы загрузить фрагмент, и вот код:
private void loadFragment(Fragment fragment) {
// load fragment
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
и при дальнейшей деятельности я использую этот код:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_activity);
toolbar = getSupportActionBar();
toolbar.setTitle("Home");
loadFragment(new HomeFragment());
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}
но, похоже, мое приложение всегда вылетает при запуске. Есть идеи?
Кстати, извините за плохой английский!
Edit:
Проблема кажется в коде транзакции .replace ()
transaction.replace(R.id.frame_container, fragment);
когда я закомментировал это, мое приложение работает, но я не могу загрузить фрагмент тогда
Редактировать 2:
Вот причина сбоя моего приложения:
2018-11-07 08: 44: 44.469 20414-20414 / com.example.han.xvit
D / AndroidRuntime: выключение ВМ 2018-11-07 08: 44: 44.470
20414-20414 / com.example.han.xvit E / AndroidRuntime: ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ:
главный
Процесс: com.example.han.xvit, PID: 20414
java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.example.han.xvit / com.example.han.xvit.home_activity}:
java.lang.RuntimeException: com.example.han.xvit.home_activity@a800718
должен реализовать OnFragmentInteractionListener
на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2721)
на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2782)
на android.app.ActivityThread.-wrap12 (ActivityThread.java)
на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1521)
на android.os.Handler.dispatchMessage (Handler.java:102)
на android.os.Looper.loop (Looper.java:163)
на android.app.ActivityThread.main (ActivityThread.java:6228)
в java.lang.reflect.Method.invoke (родной метод)
на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:904)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:794)
Вызывается: java.lang.RuntimeException: com.example.han.xvit.home_activity@a800718 должен реализовать
OnFragmentInteractionListener
в com.example.han.xvit.HomeFragment.onAttach (HomeFragment.java:83)
на android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1404)
на android.support.v4.app.FragmentTransition.addToFirstInLastOut (FragmentTransition.java:1195)
на android.support.v4.app.FragmentTransition.calculateFragments (FragmentTransition.java:1078)
на android.support.v4.app.FragmentTransition.startTransitions (FragmentTransition.java:117)
на android.support.v4.app.FragmentManagerImpl.executeOpsTogether (FragmentManager.java:2408)
на android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute (FragmentManager.java:2366)
на android.support.v4.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:2273)
на android.support.v4.app.FragmentManagerImpl.dispatchStateChange (FragmentManager.java:3273)
на android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated (FragmentManager.java:3229)
на android.support.v4.app.FragmentController.dispatchActivityCreated (FragmentController.java:201)
на android.support.v4.app.FragmentActivity.onStart (FragmentActivity.java:620)
на android.support.v7.app.AppCompatActivity.onStart (AppCompatActivity.java:178)
на android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1249)
на android.app.Activity.performStart (Activity.java:6897)
на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2684)
на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2782)
на android.app.ActivityThread.-wrap12 (ActivityThread.java)
на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1521)
на android.os.Handler.dispatchMessage (Handler.java:102)
на android.os.Looper.loop (Looper.java:163)на android.app.ActivityThread.main (ActivityThread.java:6228)
в java.lang.reflect.Method.invoke (родной метод)
на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:904)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:794)
1027 *
Редактировать 3:
Я успешно решил проблему. Кажется, мне не хватает нескольких реализаций фрагментов в моей домашней деятельности
Решение можно увидеть на здесь