2013-09-25 31 views
0

我有片段,我想放置自定義textview,所以我沒有每次都定義它們。 因此,當我定義自定義textview類我想定義一個私人onClickListener。當用戶點擊文本視圖時,片段將被替換。在onClickListener中的onClick方法中,我無法調用getFragmentManager。我該怎麼做?從可點擊的文本視圖更改片段

回答

1

你必須手動完成它,因爲它是一個非常糟糕的設計 - 將項目行爲綁定到它不需要知道的對象上。

只需定義一個類,實現接口,獲取fragmentManager作爲構造函數的參數並執行此類中所有需要的操作。 然後,只需將偵聽器的實例綁定到任何對象上的TextView,這些對象都有對FragmentManager的引用。

+0

所以,如果這是一個糟糕的設計,告訴我如何以另一種方式做到這一點。我想讓它成爲一種好方法!請告訴我這 –

+0

@AntonelloGatto正如我所說的'OnClickListener'(你想成爲私有的)必須是外部的TextView類的。它可能是一個匿名類型或某個類,但它必須在某個可以獲得對FragmentManager實例的引用的類中定義。因此,在OnClickListener中,您將能夠定義正確的片段事務。然後,只需將偵聽器分配給一個自定義的「TextView」,工作就完成了。 –

+0

你能否讓我成爲一個代碼示例?我正在嘗試,但我不能。 –