2013-09-23 27 views
1

我的FragmentA包含ListView。我的FragmentB包含每个项目的详细信息。我如何从FragmentA的onItemClickListener()开始交易。如何在片段内启动片段交易

Fragment newFragment = EntryFragment.newInstance(); 
    FragmentTransaction transaction = ((FragmentActivity)context).getSupportFragmentManager().beginTransaction(); 

transaction 
     .replace(containerId, newFragment) 
     .addToBackStack(null) 
     .commit(); 
对创建 FragmentA

我通过R.id.containercontainerId。当事务被调用时,它会抛出一个错误“No view found for id 0x0somehexnumber”

+1

恕我直言,你应该让FragmentA在其托管活动中调用一个方法,可能是通过契约模式,并让活动响应UI事件。显示FragmentB可能不是所有屏幕尺寸等的正确答案,并且这些片段应该一般无视屏幕尺寸。除此之外,看起来你可能有错误的'containerId',因为错误信息表明没有这个值。 – CommonsWare

+0

你知道这个id属于哪个视图吗?您可以通过查看gen/com.example.packagename/R.java来检查视图ID – edisonthk

回答

1

您不需要传递容器ID。

只需使用R.id.your_containerlayout

replace(...)参数。此外,调用此线就足够了:

FragmentTransaction transaction = getFragmentManager().beginTransaction(); 

如果你是一个支持片段中,这将让你的SupportFragmentManager