[英]How to call method from another fragment
正如@Juan的答案表明,片段不應直接通信。 這就是您設法做到的。
這是您的活動類,實現了片段中定義的接口
public class MainActivity extends Activity implements FragmentInterface {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void fragmentInterfaceMethod(int your_value) {
//use your_value to send it to another fragment
}
}
您的片段類:
public class MyFragment extends Fragment {
public interface FragmentInterface {
void fragmentInterfaceMethod(int your_value);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_word_definition, container, false);
int myValue = 123;
((FragmentInterface)getActivity()).fragmentInterfaceMethod(myValue);
return mView;
}
}
片段不打算彼此直接對話。 您可以執行以下兩項操作之一:
1-將數據存儲在兩個片段共有的活動中,並使每個片段在活動中獲取並設置數據。
要么
2-如果數據確實綁定到其中一個片段,則讓另一個片段要求活動提供數據。 然后,活動可以要求具有數據的片段將其移交,以便可以將其傳遞給請求的框架。
片段和活動之間的通信可以通過接口完成,也可以直接將活動強制轉換為具體的類。
並在另一個方向上通過使用對相應片段的引用。
注意:如果您對片段使用ViewPager,則獲取當前片段實例需要一些額外的步驟。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.