2013-11-21 90 views
1

我有一個主要活動有一個edittext和viewpager是通過兩個片段膨脹。兩個分段佈局都包含按鈕。我的問題是如何在主要活動中觸發點擊監聽器。如何在主要活動中從片段中觸發事件?

就像我在一個片段中有一個按鈕,它應該使用spannable字符串更改我的edittext中的文本。如果所有這些都在我的主要活動中,我可以實現它。我的問題是如何在主要活動中捕獲此按鈕的偵聽器?

回答

6

創建一個接口並將實例傳遞給片段,並且當從片段中單擊按鈕調用接口的方法時,您將獲得回調到活動,從那裏你可以更新你的用戶界面。

例如:

public interface MyInterface { 
    public void buttonClicked(); 
} 

public class Activity implements MyInterface { 

    @override 
    public void buttonClicked() { 
     //Change the UI 
    } 
} 

public class MyFragment extends Fragment { 
    MyInterface interface; 

    public void setInterface(MyInterface interface) { 
     this.interface = interface; 
    } 

    public void onClick(View v) { 
     interface.buttonClicked(); 
    } 
} 
+0

雅我只通過接口,Thans使用自定義偵聽器 –

2

在你的片段,您可以使用

((MainActivity)getActivity()).myMethod()

調用MainActivity的myMethod的。此解決方案假設您的片段位於MainActivity中(getActivity必須返回MainActivity實例):-)

+0

不可取的! –

相關問題