2013-05-03 72 views
1

我有一個類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

回答

1
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