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

Posted

技术标签:

【中文标题】从另一个活动中打开一个活动的片段【英文标题】:Open a fragment of an activity from another activity 【发布时间】:2013-05-26 01:02:30 【问题描述】:

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

我应该使用FragmentManager;我找不到任何特定于我需要的东西。谁能给我一些可以很好解释的链接。

【问题讨论】:

【参考方案1】:

你是对的,首先你需要启动 Activity 而不是在 FragmentPager / Manager 中设置当前的 Fragment ......他们没有这样的方式从你的 Activity 中启动一些外部片段,这会很危险,这会导致僵尸片段漂浮在应用程序周围(或者可能我没有意识到这一点..)

    您使用片段名称的某些参数调用 Activity Intent,您想要启动,即整数、布尔值等...

      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
      
    

但是,我没有遇到问题"It was unable to locate the activity." 您是否在清单文件中输入了 Activity 而不是您遇到的问题?请发布完整的堆栈跟踪。

【讨论】:

您想在 Intent 中使用哪个标志很大程度上取决于您在 Activity Stack 中处理 Activity。有关最适合您要求的标志,请参阅developer.android.com/reference/android/content/Intent.html...【参考方案2】:

您可以使用以下内容:

Intent ttsSettings = new Intent("com.android.settings.TTS_SETTINGS");
ttsSettings.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(ttsSettings);

【讨论】:

我希望我能为你买啤酒..谢谢哥们..:) P.S.我今天有一个发布,我也参与了其他任务。它会在 Launcher 中的快捷方式处打开。 如果您使用的是分页寻呼机适配器,请在此处详细查看我的答案***.com/a/55722092/3904109

以上是关于从另一个活动中打开一个活动的片段的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个活动中调用片段

从另一个活动的活动中的片段传递数据

从另一个提供循环依赖的模块打开活动

如何从另一个活动或底部工作表对话框/片段中关闭一个活动

如何从另一个片段访问片段对象

从另一个片段的其他视图控制片段的视图