仅在按照意图进行时才更改片段(在这种情况下,他们实际上共享应用程序)

Posted

技术标签:

【中文标题】仅在按照意图进行时才更改片段(在这种情况下,他们实际上共享应用程序)【英文标题】:Change Fragments Only If They Go Through With The Intent (They Acually Share The App In This Case) 【发布时间】:2020-09-17 19:15:24 【问题描述】:

我在 MainActivity.java 中有这段代码

FloatingActionButton fab2 = findViewById(R.id.fab2);

fab2.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View view) 
                //intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
                // "mailto","info@jmremovals.com.au", null));
            //tartActivity(Intent.createChooser(emailIntent, "Send email..."));

            Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
            sharingIntent.setType("text/plain");
            String shareBody = "Here is the share content body";
            sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
            sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
            startActivity(Intent.createChooser(sharingIntent, "Share via"));



            CompletedFrag compFrag = new CompletedFrag();
            FragmentManager fm = getSupportFragmentManager();
            FragmentTransaction transaction = fm.beginTransaction();
            transaction.replace(R.id.nav_host_fragment, compFrag);
            transaction.commit();



        
    );

现在它会显示共享应用程序屏幕并更改片段,但如果我决定不共享应用程序,我仍然会更改片段。

所以我的问题是我可以执行与上述相同的过程,但如果他们取消而不共享应用程序(通过提供的选项),那么它会返回到上一个片段,我认为可能是 if else 语句,但我是 android 新手,并且不知道它是怎么做到的!

非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

经过大量搜索,我发现没有解决方案(我知道的)可以做我所询问的,因为它是由 android 系统本身处理的,而且这些东西是锁紧的。 如果您试图阻止某人访问某个页面,除非您完成某事,那么我建议您看看您正在寻找的内容是否可以通过网站或类似网站来完成。

我最终放弃了这条路并走上了另一条路,即使我能够停止更改片段,如果他们不分享给另一个人,他们可以分享给自己并继续。

希望这可以帮助某人。

【讨论】:

以上是关于仅在按照意图进行时才更改片段(在这种情况下,他们实际上共享应用程序)的主要内容,如果未能解决你的问题,请参考以下文章

创建程序以仅在学生有足够余额的情况下才允许学生注册课程[关闭]

如何在嵌套片段内的两个子片段之间进行通信

我隐藏的 DIV 中的 Youtube 视频仅在显示 DIV 后才开始加载

片段隐藏在Android中不起作用

使用导航抽屉旋转时的片段更改

Jetpack Navigation Drawer 总是重新创建片段