如何让FragmentManager在类中扩展LinearLayout?

问题描述:

我有一个类TitleView扩展LinearLayout与它的一个按钮。由于有servral UI需要这个类,我将它包含在这些布局xml文件中。现在我需要在按下按钮后启动PreferenceFragment,但我不能使用getFragmentManager()获取FragmentManager来控制TitleView中的PreferenceFragment。如何让FragmentManager在类中扩展LinearLayout?

任何人都可以帮我吗?非常感谢:)

+1

为什么你不定义一个接受'Context'和'FragmentManager'的构造函数? – Geros 2013-05-03 07:26:28

+0

cuz这个类包含在xml文件中并且系统调用默认的构造函数。 – kiwi 2013-05-03 07:43:13

+0

我已经通过使用setActivity获取当前活动解决了问题。感谢提示! – kiwi 2013-05-03 08:07:02

class TitleView extends LinearLayout 
{ 

    private FragmentActivity mActivity; 

    /** 
    * @param of type null 
    * @return mActivity of type FragmentActivity 
    * getter function for mActivity 
    * @since May 3, 2013 
    * @author rajeshcp 
    */ 
    public FragmentActivity getmActivity() { 
     return mActivity; 
    } 

    /** 
    * @param mActivity of type FragmentActivity 
    * @return of type null 
    * setter function for mActivity 
    * @since May 3, 2013 
    * @author rajeshcp 
    */ 
    public void setmActivity(FragmentActivity mActivity) { 
     this.mActivity = mActivity; 
     mActivity.getSupportFragmentManager(); 
    } 

    public TitleView(Context context) { 
     super(context); 
    } 

} 

((TitleView)findViewbyId(R.id.your_lay_out_id)).setmActivity(yourFragmentActivity); 

mActivity.getSupportFragmentManager(); 
+0

非常感谢pal,但我需要在类TitleView内部获得FragmentManager才能将侦听器绑定到该按钮。 – kiwi 2013-05-03 07:46:48

+0

为什么你想要片段管理器添加监听器到按钮? – Triode 2013-05-03 07:50:10

+0

对不起我的英文不好。我需要这样的:public void onClick(View v){mActivity.getFragmentManager()。beginTransaction()。replace(android.R.id.content,new PrefsFragement())。commit();} – kiwi 2013-05-03 07:57:46