Android:从片段调用活动

Posted

技术标签:

【中文标题】Android:从片段调用活动【英文标题】:Android : Calling Activity from Fragment 【发布时间】:2012-09-20 04:50:42 【问题描述】:

我在活动中使用片段。我正在使用 MediaRecorder 进行录音。 我有一个活动的两个部分。 第一个本身将列出记录文件的活动。 在它的右侧,当一个选择要为新文件录制时,调用查找活动。 When the any of the listed file is selected i am using AudioPlayer as to play the recorded file. 我在这里能够将 Activity 转换为片段,但是当我按下 Stop 时,它正在终止应用程序。

请任何人都可以回答。当我将它用作简单的活动时,我的录音机工作正常。 任何解决方案,例如我是否可以在该片段中调用该活动或类似的东西。? 如果有人知道,请帮助我。

【问题讨论】:

从片段调用另一个活动使用这样的: 【参考方案1】:

使用 get activity 获取父 Activity,然后照常进行。

Intent myIntent = new Intent(getActivity().getapplicationcontext(), BookmarkActivity.class);
getActivity().startActivity(myIntent); 

【讨论】:

【参考方案2】:

这是另一种替代方法。这对我有用。

public class **YourFragmentClass** extends Fragment 

    Context context; //Declare the variable context

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) 

    //Pass your layout xml to the inflater and assign it to rootView.
      View rootView = inflater.inflate(R.layout.**yourfragmentxml**, container, false); 
            context = rootView.getContext(); // Assign your rootView to context

            Button **yourButton** = (Button) rootView.findViewById(R.id.**your_button_id**);
            **yourButton**.setOnClickListener(new View.OnClickListener() 
                @Override
                public void onClick(View v) 
                    //Pass the context and the Activity class you need to open from the Fragment Class, to the Intent
                    Intent intent = new Intent(context, **YourActivityClass**.class); 
                    startActivity(intent);
                
            );
            return rootView;
        
    

【讨论】:

非常感谢,这正是我正在寻找的......;)【参考方案3】:

要从fragment 调用另一个activity,请使用:

Intent i = new Intent(getActivity(), Activity.class);
startActivity(i);

【讨论】:

【参考方案4】:

您可以简单地调用

startActivity(new Intent(getActivity(),TheNextActivity.class));

【讨论】:

【参考方案5】:

在片段类中

 getActivity().startActivity(new Intent(gwtActivity(),MainActivity.class));
 getActivity().finish();

【讨论】:

【参考方案6】:

你的片段应该有一个父级

Intent intent = new Intent(getActivity(), SecondActivity.class);
getActivity().startActivity(intent);  

【讨论】:

【参考方案7】:

从 Fragment 类调用 Activity 的最佳方式是在 Fragment 中创建接口并在该接口中添加onItemClick() 方法。现在将它实施到您的第一个活动并从那里调用第二个活动。

【讨论】:

以上是关于Android:从片段调用活动的主要内容,如果未能解决你的问题,请参考以下文章

android - 从活动调用完成会破坏托管片段吗?

Android:从片段调用时如何从活动中获取返回结果?

如何从Android中没有活动和片段的函数调用DialogFragment?

将数据从活动发送到片段android工作室[重复]

如何从活动中调用片段方法?

Android 从片段中检索 Json 并在另一个活动中使用