程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了当我尝试从片段中显示或隐藏浮动操作按钮时出错大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决当我尝试从片段中显示或隐藏浮动操作按钮时出错?

开发过程中遇到当我尝试从片段中显示或隐藏浮动操作按钮时出错的问题如何解决?下面主要结合日常开发的经验,给出你关于当我尝试从片段中显示或隐藏浮动操作按钮时出错的解决方法建议,希望对你解决当我尝试从片段中显示或隐藏浮动操作按钮时出错有所启发或帮助; @H_944_2@我试图从一个片段移动到另一个隐藏浮动操作按钮的片段,然后从第二个片段返回到第一个片段并再次显示该按钮。浮动操作按钮位于主活动内。

@H_944_2@mainactivity.java:

package cl.itn.cam;

import androID.os.bundle;

import com.Google.androID.material.floaTingactionbutton.floaTingActionbutton;
import com.Google.androID.material.snackbar.Snackbar;

import androIDx.appcompat.app.AppCompatActivity;
import androIDx.appcompat.Widget.Toolbar;
import androIDx.fragment.app.Fragment;
import androIDx.fragment.app.Fragmenttransaction;
import androIDx.navigation.fragment.NavHostFragment;

import androID.vIEw.VIEw;

public class NCR extends AppCompatActivity {

    Fragmenttransaction transaction;
    Fragment fragmentFirst,fragmentSecond;
    floaTingActionbutton fab = findVIEwByID(R.ID.fab);

    @OverrIDe
    protected voID onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        setContentVIEw(R.layout.activity_n_c_r);

        fragmentFirst = new FirstFragment();
        fragmentSecond = new SecondFragment();


    }

    public floaTingActionbutton getfloaTingActionbutton() {
        return fab;

    }

    public voID showfloaTingActionbutton() {
        fab.show();
    }

    public voID hIDefloaTingActionbutton() {
        fab.hIDe();
    }

}
@H_944_2@FirstFragment.java:

public class FirstFragment extends Fragment {

    @OverrIDe
    public VIEw onCreateVIEw(
            LayoutInflater inflater,VIEwGroup container,Bundle savedInstanceState
    ) {


        final floaTingActionbutton fab = ((NCR) getActivity()).getfloaTingActionbutton();

        if (fab != null) {
            ((NCR) getActivity()).hIDefloaTingActionbutton();
        }

        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_first,container,falsE);

    }

    public voID onVIEwCreated(@NonNull View view,Bundle savedInstanceStatE) {
        super.onVIEwCreated(vIEw,savedInstanceStatE);

        vIEw.findVIEwByID(R.ID.button_first).setonClickListener(new VIEw.onClickListener() {
            @OverrIDe
            public voID onClick(View view) {

                NavHostFragment.findNavController(FirstFragment.this)
                        .navigate(R.ID.action_FirstFragment_to_SecondFragment);
            }
        });
    }
}
@H_944_2@SecondFragment.java:

public class SecondFragment extends Fragment {

    @OverrIDe
    public VIEw onCreateVIEw(
            LayoutInflater inflater,Bundle savedInstanceState
    ) {


        final floaTingActionbutton fab = ((NCR) getActivity()).getfloaTingActionbutton();

        if (fab != null) {
            ((NCR) getActivity()).showfloaTingActionbutton();
        }



        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_second,falsE);
    }

    public voID onVIEwCreated(@NonNull View view,savedInstanceStatE);

        vIEw.findVIEwByID(R.ID.button_second).setonClickListener(new VIEw.onClickListener() {
            @OverrIDe
            public voID onClick(View view) {
                NavHostFragment.findNavController(SecondFragment.this)
                        .navigate(R.ID.action_SecondFragment_to_FirstFragment);
            }
        });
    }
@H_944_2@应用程序在尝试使用以下堆栈跟踪显示主要活动时崩溃:

@H_944_2@** 2021-03-19 11:04:56.979 32471-32471/cl.itn.cam E/AndroIDRuntime:致命异常:主要 进程:cl.itn.cam,PID:32471 java.lang.RuntimeException:无法实例化活动 ComponenTinfo{Cl.itn.cam/cl.itn.cam.NCR}:java.lang.NullPointerException:尝试调用虚拟方法 'androID.content.pm.ApplicationInfo androID.content。 Context.getApplicationInfo()' 在空对象引用上 在 androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:3401) 在 androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3620) 在 androID.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 在 androID.app.servertransaction.transactionExecutor.executeCallBACks(transactionExecutor.java:135) 在 androID.app.servertransaction.transactionExecutor.execute(transactionExecutor.java:95) 在 androID.app.ActivityThread$H.handlemessage(ActivityThread.java:2183) 在 androID.os.Handler.dispatchmessage(Handler.java:107) 在 androID.os.Looper.loop(Looper.java:241) 在 androID.app.ActivityThread.main(ActivityThread.java:7604) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.androID.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:941) 引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“androID.content.pm.ApplicationInfo androID.content.Context.getApplicationInfo()” **

解决方法

@H_944_2@尝试更换

@H_944_2@final FloaTingActionButton fab = ((NCR) getActivity()).getFloaTingActionButton();

@H_944_2@与

FloaTingActionButton fab = findViewById(R.id.fab);
@H_944_2@在你的片段中。这应该消除错误

, @H_944_2@解决了!

@H_944_2@在公开课 NCR 中,我替换了“FloaTingActionButton fab = findViewById(R.id.fab);”通过“FloaTingActionButton fab;”,然后在 onCreate 事件中我添加了“fab = findViewById(R.id.fab);

@H_944_2@谢谢!

大佬总结

以上是大佬教程为你收集整理的当我尝试从片段中显示或隐藏浮动操作按钮时出错全部内容,希望文章能够帮你解决当我尝试从片段中显示或隐藏浮动操作按钮时出错所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: