从另一个活动打开活动的片段

7

大家好,我想从我的应用程序中打开设置的“文本转语音输出”片段。我认为首先需要打开设置活动,然后再打开它的片段。我尝试设置ComponentName,但它无法找到该活动。

我应该使用FragmentManager吗?我没有找到任何特定于我的需求的内容。有人能给我一些可能解释得很好的链接吗?

2个回答

16

你说得对,首先您需要启动Activity,然后在FragmentPager / Manager中设置当前Fragment... 没有从Activity启动某个外部fragment的方法,因为这样做会导致应用程序中出现僵尸片段(或者我不知道有没有这样的方法)。

1. 您可以使用带有一些参数的Activity Intent来调用Fragment名称,例如整数、布尔等...

  Intent intent = new Intent(this,SecondActivity.class);
  intent.putExtra("fragmentNumber",1); //for example    
  startActivity(intent);
  • 在第二个活动的OnCreate方法中检查传递的值,并将所需的片段设置在顶部.. 在OnCreate方法内

  •  if(getIntent().getIntExtra("fragmentNumber",0)==1){
       //set the desired fragment as current fragment to fragment pager
      }
    
    然而,我遇到的问题是无法找到该活动。您是否在清单文件中输入了活动?如果有问题,请发布完整的堆栈跟踪。

    你想要在Intent中使用哪个标志,这在处理Activity Stack中的Activity时非常依赖。对于最适合你需求的标志,请参见http://developer.android.com/reference/android/content/Intent.html... - Amit

    4
    您可以使用以下内容:
    Intent ttsSettings = new Intent("com.android.settings.TTS_SETTINGS");
    ttsSettings.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(ttsSettings);
    

    希望我能为你买一杯啤酒..谢谢伙计..:) 附言:今天我有一个发布任务,同时还参与了其他任务。它将在启动器中打开一个快捷方式。 - Harsh Vardhan
    如果您正在使用分段Pager Adapter,请详细查看我的答案,链接在这里 https://dev59.com/po_ea4cB1Zd3GeqPJRHN#55722092 - DragonFire
    这个在10年前对我来说完美运作。现在,当我从Eclipse/ADT导入我的项目到Android Studio(2021.3.1.17)后,我遇到了以下问题:“清单中引用的类com.android.settings.TTS_SETTINGS在项目或库中找不到”。有任何解决方法吗? - WebViewer

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接