2013-10-18 298 views

回答

1

擴展偏好類並覆蓋onCreateView(ViewGroup parent)。然後,您可以將您的LoginButton作爲您的偏好視圖返回。但請確保您實施了所有必要的方法以使首選項正常工作。 Here是如何創建自定義首選項的詳細信息。

2

使用一個正常的PreferenceScreen文本,指示用戶點擊登錄Facebook。單擊時註冊一個OnPreferenceClickListener和聽衆的定義,使用此代碼:

LoginButton l = new LoginButton(this); 
l.performClick(); 

什麼我基本上是試圖做的是編程方式創建一個永遠不會顯示一個按鈕,然後調用它的onClick函數開始Facebook登錄/註銷程序。這是否有訣竅?

2

我會做的是創建一個自定義XML,其中包含您的偏好,並使用LinearLayout嵌入登錄按鈕。使用LinearLayout非常重要,因爲它處理onClick事件的方式是帶有onClickListener的最低級別孩子優先於父級onClickListener。這意味着,只有當用戶直接點擊按鈕時,纔會調用登錄按鈕的onClick邏輯。

在代碼中,您現在可以擴展PreferenceFragment類,您可以在其中設置onClick偵聽器以及任何您可能需要的東西。請注意,如果你支持API級別10或更低,則可能需要以用於創建自定義的偏好:

addPreferencesFromResource(R.xml.custom_preference); 

希望這是你在找什麼,我很欣賞的任何反饋。