0

所以我基本上有一个'DemosFragment'按钮,当我点击它,我想它打开另一个片段(SettingsFragment),我现在明白我需要一个活动要解决这个问题,因为按钮目前有一个使用intent/startActivity的onClick方法,那么我将如何去创建一个只包含我的片段的活动?我知道这可能听起来很奇怪,我写了它,我刚开始Android开发,但基本上我有一个片段,因为我想要一个片段有一个按钮来打开另一个片段,我想我需要一个活动的片段我是试图打开,那么我该如何创建这个活动,以及我需要放置哪些内容?谢谢。试图创建一个按钮来打开一个片段(安卓)

+0

您是否已经将此片段加载到某个活动中,或者您是否只编码了一个片段,并且需要知道如何显示该片段以及切换到下一个片段。 – Rarw 2014-09-19 16:13:53

回答

0

你需要用下面的代码的活动:

public class ShowFragmentActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_show_fragment); 
    } 
} 

你也有你的资源来创建一个名为activity_show_fragment.xml布局xml文件/文件夹布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <fragment class="com.example.yourFragmentsClassName" 
     android:id="@+id/fragment_id" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</FrameLayout> 

这应该工作只显示你的片段。 要启动活动,在按钮的onClick方法粘贴此代码:

Intent i = new Intent(this, ShowFragmentActivity.class); 
startActivity(i); 

它总是一个很好的决定来看看官方的文档:http://developer.android.com/reference/android/app/Fragment.html。 希望有所帮助!

+1

谢谢你,对你的代码进行了一些调整,我得到它的工作,除了现在我切换到片段时,我的顶部标签没有显示,有没有办法让标签仍然出现? – 2014-09-19 16:35:49

0

哇!你的问题需要很长的回答,但是一个很好的做法(也是疯狂的)Fragments不能相互通信,但它们可以由一个Activity来主持;在这种情况下,Activity可以管理它们之间的通信流(碎片),并可以通过Bundle,Intent和Handler等几种方式进行开发。看看这里的ufficial Android文档:

http://developer.android.com/training/basics/fragments/index.html

0

构建一个灵活的用户界面的android docs部分是如何启动/从Activity加载Fragment一个很好的例子。在该示例中,您将看到Activity XML中的FrameLayout用于片段容器。这将是显示所有片段的View

当您使用FragmentTransaction载入片段时,片段布局的内容将显示在容器视图中。在上面引用的例子中,这与Android支持库中包含的类SupportFragmentManager一起发生,用于促进早期版本操作系统中的片段事务。 SupportFramgnetManager要求您扩展FramentActivity而不仅仅是Activity。如果您不担心向后兼容性,并且正在扩展活动,而不是片段活动,则可以简单地使用getFragmentManager()。

getFragmentManager().beginTransaction() 
       .add(R.id.fragment_container, firstFragment).commit(); 

在初始添加事务后,您可以使用片段事务的替换方法在片段之间切换。替换正是它听起来像,它换一个片段换另一个。要在第一次使用内完成此操作,请使用

SecondFragment secondFragment = new SecondFragment(); 
getActivity().getFragmentManager().beginTransaction() 
       .replace(R.id.fragment_container, secondFragment).commit(); 

请注意,从片段内使用getActivity()。这允许您引用主机活动的上下文以访问片段管理器。当你在活动中时,你不需要使用getactivity,因为片段管理器已经可以从该上下文访问。