Android Fragments 是否可以通过编程方式调用后退按钮单击?

yqkkidmi  于 2022-11-24  发布在  Android
关注(0)|答案(3)|浏览(155)

我已经看到很多答案解释了如何通过用户交互覆盖并添加功能到后退按钮,但是几乎没有一个答案解释了如何在没有任何用户输入的情况下通过编程触发后退按钮。

41ik7eoe

41ik7eoe1#

从您的活动中调用=〉onBackPressed()
或者形成你的碎片=〉activity?.onBackPressed()

bpzcxfmw

bpzcxfmw2#

//simply put this code where you want to make back intent
super.onBackPressed();
fxnxkyjh

fxnxkyjh3#

根据官方文档,onBackPressed在Api级别33中已弃用。
您现在可以使用onBackPressedDispatcher,请按照以下步骤操作:
1.在清单文件夹中的应用程序标记内添加android:enableOnBackInvokedCallBack=“true”。
Kotlin代码:

class YourActivity : AppCompatActivity() {

lateinit var button: Button

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    button = findViewById(R.id.txt)
    button.setOnClickListener {
        onBackPressedCallback.handleOnBackPressed()
    }

}

private val onBackPressedCallback = object : OnBackPressedCallback(true) {
    override fun handleOnBackPressed() {
        finish()  //this finishes the current activity
        // Your business logic to handle the back pressed event
    }

  }
}

这里是旧的实现方式:
java 语:

buttonBack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            YourActivity.super.onBackPressed();
        }
    });

Kotlin:

buttonBack.setOnClickListener{
        super.onBackPressed()
    }

相关问题