Android Studio:从startActivityForResult更改为registerForActivityResult

3

我该如何将这个蓝牙活动的startActivityForResult更改为registerForActivityResult?由于我是Java和Android Studio的新手,所以请帮帮我。我尝试观看视频和教程,但只会得到更多的错误。非常感谢您能给我的任何提示。

        //on btn click
        mOnBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!mBlueAdapter.isEnabled()){
                    showToast("Turning On Bluetooth...");
                    //intent to on bluetooth
                    Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                    startActivityForResult(intent, REQUEST_ENABLE_BT);
                }
                else {
                    showToast("Bluetooth is already on");
                }
            }
        });

2个回答

3
private val launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
    if (result.resultCode == Activity.RESULT_OK) {
    
    }
}

launcher.launch(intent)

1

对于那些需要使用Java的人可以使用

private ActivityResultLauncher<Intent> startForResult =
        registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {

        });


startForResult.launch(intent);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接