• 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. });

  • 相关阅读:
    Kafak简单使用
    SpringCloud Alibaba简介
    微信/QQ/TIM防撤回补丁
    JFinal学习
    IntelliJ IDEA新建gradle项目
    剑指 Offer 01.02. 判定是否互为字符重排
    将矩阵按对角线排序(c++题解)
    【SpringBoot】线程池自定义配置
    TrueTouch学习记录
    SimpleCG程序交互操作
  • 原文地址:https://blog.csdn.net/wushijun5200/article/details/133515936