2013-02-20 68 views
0

我在sherlock片段类中有一个函数。我想在单击某个项目时从它的基本adpater类中调用它。我的代码波纹管从基础适配器到其片段类的函数调用

在底座适配器

SherlockFragment obj=new TVgui() 
(tvgui)obj.replace_fragment(frag,tag); 

在sherlockFragment类

public void replace_fragment(SherlockFragment frag,String tag) 
{ 
frag_child = getChildFragmentManager(); 
ft = frag_child.beginTransaction(); 
    ft.addToBackStack(null) 
    .replace(R.id.fragment_container,frag,tag); 
    ft.commit(); 

} 

强行关闭带有错误 “破坏活动”。请帮助

回答

0

您应该使用传递给适配器的上下文,而不是创建新的Fragment对象。像这样:

((TVgui)context).replace_fragment(frag,tag); 
+0

但在我的适配器中我使用了活动上下文而不是片段。 – user1526671 2013-02-20 07:43:54

+0

所以传递片段上下文或将其添加为另一个参数。 – 2013-02-20 07:45:59