有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java应用程序在编写此代码后崩溃。错在哪里?

我想编写一个简单的计数器应用程序。我想稍后实现一些其他工具。因此,我选择了“BottomNavigationView”。在我的一个片段中,我想实现计数器。布局是正确的,可以工作,但是真正增加/减少类中的数量的代码HomeActivity在开始时会使我的应用程序崩溃。也许有人知道答案D

我从HomeActivity中删除了代码,以检查崩溃是否来自新代码,并且一切正常。因此,计数器的代码有错误

public class HomeFragment extends Fragment {


    private TextView counterText;
    private Button plusButton;
    private Button minusButton;
    private Button resetButton;
    private int counter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        counterText = getView().findViewById(R.id.counterText);
        minusButton = getView().findViewById(R.id.minusButton);
        minusButton.setOnClickListener(clickListener);
        plusButton = getView().findViewById(R.id.plusButton);
        plusButton.setOnClickListener(clickListener);
        resetButton = getView().findViewById(R.id.resetButton);
        resetButton.setOnClickListener(clickListener);

        initCounter();

    }

    private View.OnClickListener clickListener = new View.OnClickListener() {
        @Override
        public void onClick(@org.jetbrains.annotations.NotNull View view) {
            switch (view.getId()) {
                case R.id.minusButton:
                    minusCounter();
                    break;
                case R.id.plusButton:
                    plusCounter();
                    break;
                case R.id.resetButton:
                    initCounter();
                    break;
            }
        }
    };

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return  inflater.inflate(R.layout.activity_home, container, false);



    }

    private void initCounter() {
        counter = 0;
        counterText.setText(counter + "");
    }


    private void minusCounter() {
        counter--;
        counterText.setText(counter + "");
    }

    private void plusCounter() {
        counter++;
        counterText.setText(counter + "");
    }
}

以下是日志:

2019-02-10 19:35:22.065 15241-15241/? E/Zygote: v2
2019-02-10 19:35:22.065 15241-15241/? I/libpersona: KNOX_SDCARD checking this for 10229
2019-02-10 19:35:22.065 15241-15241/? I/libpersona: KNOX_SDCARD not a persona
2019-02-10 19:35:22.066 15241-15241/? E/Zygote: accessInfo : 0
2019-02-10 19:35:22.067 15241-15241/? W/SELinux: SELinux selinux_安卓_compute_policy_index : Policy Index[2],  Con:u:r:zygote:s0 RAM:SEPF_SECMOBILE_7.0_0009, [-1 -1 -1 -1 0 1]
2019-02-10 19:35:22.068 15241-15241/? I/SELinux: SELinux: seapp_context_lookup: seinfo=untrusted, level=s0:c512,c768, pkgname=com.example.counter1 
2019-02-10 19:35:22.072 15241-15241/? I/art: Late-enabling -Xcheck:jni
2019-02-10 19:35:22.097 15241-15241/? D/TimaKeyStoreProvider: TimaKeyStore is not enabled: cannot add TimaSignature Service and generateKeyPair Service
2019-02-10 19:35:22.397 15241-15241/com.example.counter1 W/System: ClassLoader referenced unknown path: /data/app/com.example.counter1-2/lib/arm
2019-02-10 19:35:22.433 15241-15241/com.example.counter1 I/InstantRun: starting instant run server: is main process
2019-02-10 19:35:22.579 15241-15241/com.example.counter1 W/art: Before Android 4.1, method 安卓.graphics.PorterDuffColorFilter 安卓.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(安卓.graphics.PorterDuffColorFilter, 安卓.content.res.ColorStateList, 安卓.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in 安卓.graphics.drawable.Drawable
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art: Rejecting re-init on previously-failed class java.lang.Class<安卓.support.v4.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution of: L安卓/view/View$OnUnhandledKeyEventListener;
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.support.v4.view.ViewCompat.setBackground(安卓.view.View, 安卓.graphics.drawable.Drawable) (ViewCompat.java:2341)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.support.v7.widget.ActionBarContainer.<init>(安卓.content.Context, 安卓.util.AttributeSet) (ActionBarContainer.java:62)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at java.lang.Object java.lang.reflect.Constructor.newInstance0!(java.lang.Object[]) (Constructor.java:-2)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[]) (Constructor.java:430)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.createView(java.lang.String, java.lang.String, 安卓.util.AttributeSet) (LayoutInflater.java:652)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.createViewFromTag(安卓.view.View, java.lang.String, 安卓.content.Context, 安卓.util.AttributeSet, boolean) (LayoutInflater.java:794)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.createViewFromTag(安卓.view.View, java.lang.String, 安卓.content.Context, 安卓.util.AttributeSet) (LayoutInflater.java:734)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.view.LayoutInflater.rInflate(org.xmlpull.v1.XmlPullParser, 安卓.view.View, 安卓.content.Context, 安卓.util.AttributeSet, boolean) (LayoutInflater.java:865)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.view.LayoutInflater.rInflateChildren(org.xmlpull.v1.XmlPullParser, 安卓.view.View, 安卓.util.AttributeSet, boolean) (LayoutInflater.java:828)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.inflate(org.xmlpull.v1.XmlPullParser, 安卓.view.ViewGroup, boolean) (LayoutInflater.java:525)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.inflate(int, 安卓.view.ViewGroup, boolean) (LayoutInflater.java:427)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.inflate(int, 安卓.view.ViewGroup) (LayoutInflater.java:378)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at 安卓.view.ViewGroup 安卓.support.v7.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:607)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.support.v7.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.support.v7.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.support.v7.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void com.example.counter1.MainActivity.onCreate(安卓.os.Bundle) (MainActivity.java:16)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.app.Activity.performCreate(安卓.os.Bundle) (Activity.java:6955)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.app.Instrumentation.callActivityOnCreate(安卓.app.Activity, 安卓.os.Bundle) (Instrumentation.java:1126)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at 安卓.app.Activity 安卓.app.ActivityThread.performLaunchActivity(安卓.app.ActivityThread$ActivityClientRecord, 安卓.content.Intent) (ActivityThread.java:2927)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.app.ActivityThread.handleLaunchActivity(安卓.app.ActivityThread$ActivityClientRecord, 安卓.content.Intent, java.lang.String) (ActivityThread.java:3045)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.app.ActivityThread.-wrap14(安卓.app.ActivityThread, 安卓.app.ActivityThread$ActivityClientRecord, 安卓.content.Intent, java.lang.String) (ActivityThread.java:-1)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.app.ActivityThread$H.handleMessage(安卓.os.Message) (ActivityThread.java:1642)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.os.Handler.dispatchMessage(安卓.os.Message) (Handler.java:102)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.os.Looper.loop() (Looper.java:154)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6776)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1496)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void com.安卓.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1386)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art: Caused by: java.lang.ClassNotFoundException: Didn't find class "安卓.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/com.example.counter1-2/base.apk", zip file "/data/app/com.example.counter1-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.counter1-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.counter1-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.counter1-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.counter1-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.counter1-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.counter1-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.counter1-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.example.counter1-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.example.counter1-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.example.counter1-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.co
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.support.v4.view.ViewCompat.setBackground(安卓.view.View, 安卓.graphics.drawable.Drawable) (ViewCompat.java:2341)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at void 安卓.support.v7.widget.ActionBarContainer.<init>(安卓.content.Context, 安卓.util.AttributeSet) (ActionBarContainer.java:62)
2019-02-10 19:35:22.664 15241-15241/com.example.counter1 I/art:     at java.lang.Object java.lang.reflect.Constructor.newInstance0!(java.lang.Object[]) (Constructor.java:-2)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[]) (Constructor.java:430)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.createView(java.lang.String, java.lang.String, 安卓.util.AttributeSet) (LayoutInflater.java:652)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.createViewFromTag(安卓.view.View, java.lang.String, 安卓.content.Context, 安卓.util.AttributeSet, boolean) (LayoutInflater.java:794)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.createViewFromTag(安卓.view.View, java.lang.String, 安卓.content.Context, 安卓.util.AttributeSet) (LayoutInflater.java:734)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.view.LayoutInflater.rInflate(org.xmlpull.v1.XmlPullParser, 安卓.view.View, 安卓.content.Context, 安卓.util.AttributeSet, boolean) (LayoutInflater.java:865)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.view.LayoutInflater.rInflateChildren(org.xmlpull.v1.XmlPullParser, 安卓.view.View, 安卓.util.AttributeSet, boolean) (LayoutInflater.java:828)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.inflate(org.xmlpull.v1.XmlPullParser, 安卓.view.ViewGroup, boolean) (LayoutInflater.java:525)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.inflate(int, 安卓.view.ViewGroup, boolean) (LayoutInflater.java:427)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at 安卓.view.View 安卓.view.LayoutInflater.inflate(int, 安卓.view.ViewGroup) (LayoutInflater.java:378)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at 安卓.view.ViewGroup 安卓.support.v7.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:607)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.support.v7.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.support.v7.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.support.v7.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void com.example.counter1.MainActivity.onCreate(安卓.os.Bundle) (MainActivity.java:16)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.app.Activity.performCreate(安卓.os.Bundle) (Activity.java:6955)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.app.Instrumentation.callActivityOnCreate(安卓.app.Activity, 安卓.os.Bundle) (Instrumentation.java:1126)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at 安卓.app.Activity 安卓.app.ActivityThread.performLaunchActivity(安卓.app.ActivityThread$ActivityClientRecord, 安卓.content.Intent) (ActivityThread.java:2927)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.app.ActivityThread.handleLaunchActivity(安卓.app.ActivityThread$ActivityClientRecord, 安卓.content.Intent, java.lang.String) (ActivityThread.java:3045)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.app.ActivityThread.-wrap14(安卓.app.ActivityThread, 安卓.app.ActivityThread$ActivityClientRecord, 安卓.content.Intent, java.lang.String) (ActivityThread.java:-1)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.app.ActivityThread$H.handleMessage(安卓.os.Message) (ActivityThread.java:1642)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.os.Handler.dispatchMessage(安卓.os.Message) (Handler.java:102)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.os.Looper.loop() (Looper.java:154)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void 安卓.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6776)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1496)
2019-02-10 19:35:22.665 15241-15241/com.example.counter1 I/art:     at void com.安卓.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1386)
2019-02-10 19:35:22.751 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.752 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.874 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.875 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.893 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.894 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.909 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.911 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.912 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.912 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.918 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.920 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.920 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.921 15241-15241/com.example.counter1 D/TextView: setTypeface with style : 0
2019-02-10 19:35:22.996 15241-15241/com.example.counter1 D/AndroidRuntime: Shutting down VM
2019-02-10 19:35:22.998 15241-15241/com.example.counter1 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.counter1, PID: 15241
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.counter1/com.example.counter1.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method '安卓.view.View 安卓.view.View.findViewById(int)' on a null object reference
        at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2984)
        at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
        at 安卓.app.ActivityThread.-wrap14(ActivityThread.java)
        at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
        at 安卓.os.Handler.dispatchMessage(Handler.java:102)
        at 安卓.os.Looper.loop(Looper.java:154)
        at 安卓.app.ActivityThread.main(ActivityThread.java:6776)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
        at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method '安卓.view.View 安卓.view.View.findViewById(int)' on a null object reference
        at com.example.counter1.HomeFragment.onCreate(HomeFragment.java:38)
        at 安卓.support.v4.app.Fragment.performCreate(Fragment.java:2414)
        at 安卓.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1418)
        at 安卓.support.v4.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1195)
        at 安卓.support.v4.app.FragmentTransition.calculateFragments(FragmentTransition.java:1078)
        at 安卓.support.v4.app.FragmentTransition.startTransitions(FragmentTransition.java:117)
        at 安卓.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2408)
        at 安卓.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
        at 安卓.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
        at 安卓.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273)
        at 安卓.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
        at 安卓.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
        at 安卓.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:620)
        at 安卓.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
        at 安卓.app.Instrumentation.callActivityOnStart(Instrumentation.java:1256)
        at 安卓.app.Activity.performStart(Activity.java:6972)
        at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2937)
        at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045) 
        at 安卓.app.ActivityThread.-wrap14(ActivityThread.java) 
        at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1642) 
        at 安卓.os.Handler.dispatchMessage(Handler.java:102) 
        at 安卓.os.Looper.loop(Looper.java:154) 
        at 安卓.app.ActivityThread.main(ActivityThread.java:6776) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) 
        at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:1386) 

如果按下按钮,计数器计数为+1,如果按下另一个按钮,计数器计数为-1

如果有错误,请原谅我的英语。谢谢你的回答


共 (3) 个答案

  1. # 1 楼答案

    应用程序崩溃,因为您在onCreate()方法中调用了getView(),而视图尚未创建;只应在onCreateView()完成后调用getView(),因为onCreateView()会膨胀并返回此视图。 你可以参考Fragment lifecycle了解更多信息

  2. # 2 楼答案

    正如M.Zain所说,从onCreate()中移除getView()

    您可以从onCreate()获得如下视图:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        counterText = findViewById(R.id.counterText);
        minusButton = findViewById(R.id.minusButton);
        minusButton.setOnClickListener(clickListener);
        plusButton = findViewById(R.id.plusButton);
        plusButton.setOnClickListener(clickListener);
        resetButton = findViewById(R.id.resetButton);
        resetButton.setOnClickListener(clickListener);
    
        initCounter();
    }
    

    或者试试Kotlin,在Kotlin中,你不需要任何findViewByID()动作

  3. # 3 楼答案

    试着用正常的View替换getView()。用以下代码替换您的代码:

        public class HomeFragment extends Fragment {
        private TextView counterText;
        private Button plusButton;
        private Button minusButton;
        private Button resetButton;
        private int counter;
    
    
    
        @Nullable
        @Override
        public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.activity_home, container, false);
    
            counterText = view.findViewById(R.id.counterText);
            minusButton = view.findViewById(R.id.minusButton);
            minusButton.setOnClickListener(clickListener);
            plusButton = view.findViewById(R.id.plusButton);
            plusButton.setOnClickListener(clickListener);
            resetButton = view.findViewById(R.id.resetButton);
            resetButton.setOnClickListener(clickListener);
    
            initCounter();
            return  view;
    
    
    
        }
    
        private void initCounter() {
            counter = 0;
            counterText.setText(counter + "");
        }
    
    
        private void minusCounter() {
            counter ;
            counterText.setText(counter + "");
        }
    
        private void plusCounter() {
            counter++;
            counterText.setText(counter + "");
        }
        private View.OnClickListener clickListener = new View.OnClickListener() {
            @Override
            public void onClick(@org.jetbrains.annotations.NotNull View view) {
                switch (view.getId()) {
                    case R.id.minusButton:
                        minusCounter();
                        break;
                    case R.id.plusButton:
                        plusCounter();
                        break;
                    case R.id.resetButton:
                        initCounter();
                        break;
                }
            }
        };
        }