Fragmentは入門から精通したActivityまでFragmentのイベントに応答する③


ActivityでFragmentのイベントに応答する


fragmentでいくつかのコードを実行したい場合、このコードはactivityに入れて実行したい場合があります.ではactivityのこのコードはどのようにfragmentで起動したのでしょうか.インタフェースを使用する方法で、この機能を実現することができます.以下にいくつかのステップに分けてこの機能に到達します.
  • ①インターネットインタフェースを作成し、抽象的な方法
  • を書きます.
  • ②fragmentで、このインタフェース
  • を宣言する
  • ③activityでimplementというインタフェースを実装し,抽象的な方法を実現する.変更方法はactivityで実現したい方法で、自分の詳細なコード
  • を書きます.
  • ④fragmentで呼び出す
  • ①インターフェースの作成

    /** * Created by qin on 2016/1/1. *  fragment activity */
    public interface SendMessageCommunitor {
        /** fragment  * @param msg   * */
        void sendMessage(String msg);
    }
    

    ②fragmentで、このインタフェースを宣言する

        //...
        private SendMessageCommunitor sendMessage;
        //...
            @Override
        public void onAttach(Activity activity) {
            super.onAttach(activity);
            sendMessage = (SendMessageCommunitor) activity;
        }

    ③activityでimplementというインタフェースを実現し、抽象的な方法を実現する

    public class MainActivity extends AppCompatActivity implements SendMessageCommunitor {
    //...
        @Override
        public void sendMessage(String msg) {
            //... 
        }

    ④fragmentで呼び出す

        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
    
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    sendMessage.sendMessage("open");
                }
            });
            //...