首页 > 解决方案 > 在活动上按下返回按钮后在片段中设置监听器

问题描述

所以我有MyFragment从我在单击按钮时启动MyActivity的地方。一旦我在活动中,我想回到我的片段,我想宣布我刚刚来自那个活动的片段并显示一个横幅。

这是我的活动:

class MyActivity : AppCompatActivity() {
   private var onBackButtonClickListener: OnBackButtonClickListener? = null

    ...

    backBtn.setOnClickListener {
       this.onBackPressed()
       onBackButtonClickListener?.onBackButtonClick()
    }

    ...

    fun setOnBackButtonClick(onBackButtonClickListener: OnBackButtonClickListener) {
        this.onBackButtonClickListener = onBackButtonClickListener
    }

    interface OnBackButtonClickListener {
       fun onBackButtonClick()
    }
}

这是我实现活动接口的片段:

public class MyFragment extends Fragment implements MyActivity.OnBackButtonClickListener {
   ....

   @Override
    public void onBackButtonClick() {
       //show banner
   }
     

我的问题是:我的片段怎么知道我刚刚来自那个特定的活动?我在哪里设置片段内的 onClickListener?过去 2 天我一直在寻找解决方案,但没有找到任何可行的方法。

标签: androidkotlinlistener

解决方案


你不需要任何接口,使用startActivityForResult方法而不是只是startActivity这里的一些文档和示例


推荐阅读