该文章为转载,可以访问原创博客

当我们想要在fragment去执行一些代码,但是这个代码我们想要把它放在activity里面去执行。那么activity里这段代码是如何在fragment中去启动的呢?
使用接口的方法,可以为我们去实现这个功能。以下分为几个步骤去到达这个功能。

① 创建一个interface接口,在里面写上抽象方法
② 在fragment中,声明这个接口
③ activity里implement这个接口,并实现抽象方法。改方法就是我们想要在activity中实现的方法,写上自己详细的代码
④ 在fragment中调用它

①创建一个interface接口

public interface SendMessageCommunitor {
   
    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");
            }
        });
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐