首页 > 解决方案 > 如何将 appcompactactivity 更改为片段

问题描述

我正在尝试将硬代码测验与底部导航栏集成在一起。当我选择测验部分时应用程序崩溃。这是我第一次将两个不同的应用程序合二为一。

对不起我的完整代码,因为我真的不知道这些问题。

我想知道如何将 appcompactactivity 更改为片段。

这是代码:

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_exercise, container, false);
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        textViewHighscore = getView().findViewById(R.id.text_view_highscore);
        spinnerCategory = getView().findViewById(R.id.spinner_category);
        spinnerDifficulty = getView().findViewById(R.id.spinner_difficulty);
        loadCategories();
        loadDifficultyLevels();
        loadHighscore();
        Button buttonStartQuiz = getView().findViewById(R.id.button_start_quiz);
        buttonStartQuiz.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startQuiz();
            }
        });

    }
crash log:
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 12669
    java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
        at com.example.myapplication.ExerciseFragment.onCreate(ExerciseFragment.java:43)
        at androidx.fragment.app.Fragment.performCreate(Fragment.java:2586)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:838)
        at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1197)
        at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1080)
        at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:119)
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1866)
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
        at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

标签: javaandroidandroid-fragments

解决方案


推荐阅读