• Android之startActivityForResult过时升级替换方法


    一。旧版回调

     startActivityForResult(intent, 3);//注意要求码
    1. //接收其它页面回传结果和显示图片
    2. @Override
    3. public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    4. super.onActivityResult(requestCode, resultCode, data);
    5. //页面传回来的值
    6. if (requestCode == 1)
    7. if (data != null) {
    8. //处理代码在此地
    9. String dataCback = data.getStringExtra("EXTRA_Colors");
    10. ;// 得到子窗口ChildActivity的回传数据
    11. // edx_color.setText(dataCback);
    12. }
    13. //页面助用户传回来的值
    14. if (requestCode == 3)
    15. if (data != null) {
    16. //处理代码在此地
    17. String dataCback = data.getStringExtra("Milk_id");
    18. ;// 得到子窗口ChildActivity的回传数据
    19. String dataCbackspzxm = data.getStringExtra("milkusre_bame");
    20. ;// 得到子窗口ChildActivity的回传数据
    21. String dataCbackspzxmc = data.getStringExtra("Milk_name");
    22. ;// 得到子窗
    23. milkusre.setText(dataCbackspzxm);
    24. }
    25. }

    换成,在启动执行

    1. //这个registerForActivityResult方法要写在Activity的onCreate方法里(在Activity创建的时候就要创建出来,不能等到使用的时候再创建,不然会报错LifecycleOwner com.xx.MainActivity@28b4e79 is attempting to register while current state is RESUMED. LifecycleOwners must call register before they are STARTED.)。
    2. ActivityResultLauncher intentActivityResultLauncher = registerForActivityResult(
    3. new ActivityResultContracts.StartActivityForResult(),
    4. result -> {
    5. /*
    6. if (result.getResultCode() == RESULT_OK) {
    7. //获取返回的结果
    8. String data = result.getData().getStringExtra("data");
    9. Toast.makeText(activity, data, Toast.LENGTH_SHORT).show();
    10. }
    11. */
    12. //页面传回来的值
    13. if (result.getResultCode() == 1){
    14. //获取返回的结果
    15. String data = result.getData().getStringExtra("data");
    16. if (data != null) {
    17. //处理代码在此地
    18. // String dataCback = data.getStringExtra("EXTRA_Colors");
    19. ;// 得到子窗口ChildActivity的回传数据
    20. // edx_color.setText(dataCback);
    21. }
    22. }
    23. //页面助用户传回来的值
    24. if (result.getResultCode() == 3){
    25. //获取返回的结果
    26. String dataCbackspzxm = result.getData().getStringExtra("milkusre_bame");
    27. if (dataCbackspzxm != null) {
    28. //处理代码在此地
    29. ;// 得到子窗口ChildActivity的回传数据
    30. // String dataCbackspzxm = data.getStringExtra("milkusre_bame");
    31. milkusre.setText(dataCbackspzxm);
    32. }
    33. }
    34. });

  • 相关阅读:
    OPT(奥普特)精彩亮相VisionChina 2022
    超级计算机技术学习与研究
    迎重阳,话养老:平安养老险如何助力国民“养老梦”?
    C语言被创造出来的基础是什么?它的主要结构是什么?
    Java常见面试题
    设计模式深度解析:工厂方法模式与抽象工厂模式的深度对比
    北大邹磊:图数据库中的子图匹配算法
    基于 nodejs+vue旅游推荐系统 mysql
    神经网络的偏差和方差,神经网络均方误差公式
    Android 解决GreenDao:Failed to notify project evaluation listener
  • 原文地址:https://blog.csdn.net/wushijun5200/article/details/133515936