簡體   English   中英

如何從另一個片段調用方法

[英]How to call method from another fragment

今天是個好日子。 我在片段中檢查了Listener,我需要在此偵聽器中鍵入一些方法,但是需要使用的數據在另一個片段中。 如何從不同的片段發送數據? 我可以從另一個片段中調用checkedListener並在mainActivity類中為他鍵入一些規則嗎? 我將非常感謝您的幫助。 謝謝。

我如何發送需要創建的sreeshot的示例(頂部的第一個正方形是mainFragment,其具有Sum -1 + 4的數據,底部具有diamonts,我具有另一個具有CheckedListener的片段,我需要比較不同片段的總和如果為true,則需要在文本中設置setTextColor): 在此處輸入圖片說明

正如@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM