我有一個主要活動有一個edittext和viewpager是通過兩個片段膨脹。兩個分段佈局都包含按鈕。我的問題是如何在主要活動中觸發點擊監聽器。如何在主要活動中從片段中觸發事件?
就像我在一個片段中有一個按鈕,它應該使用spannable字符串更改我的edittext中的文本。如果所有這些都在我的主要活動中,我可以實現它。我的問題是如何在主要活動中捕獲此按鈕的偵聽器?
我有一個主要活動有一個edittext和viewpager是通過兩個片段膨脹。兩個分段佈局都包含按鈕。我的問題是如何在主要活動中觸發點擊監聽器。如何在主要活動中從片段中觸發事件?
就像我在一個片段中有一個按鈕,它應該使用spannable字符串更改我的edittext中的文本。如果所有這些都在我的主要活動中,我可以實現它。我的問題是如何在主要活動中捕獲此按鈕的偵聽器?
創建一個接口並將實例傳遞給片段,並且當從片段中單擊按鈕調用接口的方法時,您將獲得回調到活動,從那裏你可以更新你的用戶界面。
例如:
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();
}
}
在你的片段,您可以使用
((MainActivity)getActivity()).myMethod()
調用MainActivity的myMethod的。此解決方案假設您的片段位於MainActivity中(getActivity必須返回MainActivity實例):-)
不可取的! –
雅我只通過接口,Thans使用自定義偵聽器 –