7

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

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

4

2 回答 2

16

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

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

      Intent intent = new Intent(this,SecondActivity.class);
      intent.putExtra("fragmentNumber",1); //for example    
      startActivity(intent);
    
  2. 您检查第二个活动的 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 而不是您面临的问题?请发布完整的堆栈跟踪。

于 2013-05-30T13:03:47.573 回答
3

您可以使用以下内容:

Intent ttsSettings = new Intent("com.android.settings.TTS_SETTINGS");
ttsSettings.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(ttsSettings);
于 2013-05-30T13:02:01.913 回答