ActivityResultLauncher 开源项目教程

ActivityResultLauncher 开源项目教程

ActivityResultLauncherReplace startActivityForResult() method gracefully, based on the Activity Result API. (优雅地替代 startActivityForResult(),基于 Activity Result API)项目地址:https://gitcode.com/gh_mirrors/ac/ActivityResultLauncher

1. 项目的目录结构及介绍




ActivityResultLauncher/


├── app/


│   ├── build.gradle


│   ├── src/


│   │   ├── main/


│   │   │   ├── java/


│   │   │   │   └── com/


│   │   │   │       └── dylancaicoding/


│   │   │   │           └── activityresultlauncher/


│   │   │   │               ├── MainActivity.kt


│   │   │   │               └── ...


│   │   │   ├── res/


│   │   │   │   ├── layout/


│   │   │   │   │   ├── activity_main.xml


│   │   │   │   │   └── ...


│   │   │   │   ├── values/


│   │   │   │   │   ├── strings.xml


│   │   │   │   │   └── ...


│   │   │   │   └── ...


│   │   │   └── AndroidManifest.xml


│   │   └── ...


│   └── ...


├── build.gradle


├── settings.gradle


└── ...

app/: 主应用程序模块。
build.gradle: 应用程序的构建脚本。src/main/: 主源代码目录。
java/com/dylancaicoding/activityresultlauncher/: 包含主要的 Kotlin 源文件。
MainActivity.kt: 应用程序的主活动。 res/: 资源目录。
layout/: 布局文件。
activity_main.xml: 主活动的布局文件。 values/: 字符串和其他值的资源文件。
strings.xml: 字符串资源文件。 AndroidManifest.xml: 应用程序的清单文件。 build.gradle: 项目的根构建脚本。settings.gradle: 项目的设置文件。

2. 项目的启动文件介绍

MainActivity.kt

MainActivity.kt 是应用程序的入口点。它继承自 AppCompatActivity 并使用 ActivityResultLauncher 来处理活动结果。




package com.dylancaicoding.activityresultlauncher


 


import android.content.Intent


import android.os.Bundle


import androidx.appcompat.app.AppCompatActivity


import androidx.activity.result.contract.ActivityResultContracts


import androidx.activity.result.ActivityResultLauncher


 


class MainActivity : AppCompatActivity() {


 


    private lateinit var startForResult: ActivityResultLauncher<Intent>


 


    override fun onCreate(savedInstanceState: Bundle?) {


        super.onCreate(savedInstanceState)


        setContentView(R.layout.activity_main)


 


        startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->


            if (result.resultCode == RESULT_OK) {


                val data: Intent? = result.data


                // Handle the result data


            }


        }


 


        // Example usage


        val intent = Intent(this, ResultProducingActivity::class.java)


        startForResult.launch(intent)


    }


}

3. 项目的配置文件介绍

build.gradle (项目级)

项目级的 build.gradle 文件包含了项目的全局配置,如构建工具版本、依赖仓库等。




// 项目级的 build.gradle 文件


buildscript {


    ext.kotlin_version = '1.5.21'


    repositories {


        google()


        mavenCentral()


    }


    dependencies {


        classpath 'com.android.tools.build:gradle:7.0.0'


        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"


    }


}


 


allprojects {


    repositories {


        google()


        mavenCentral()


    }


}


 


task clean(type: Delete) {


    delete rootProject.buildDir


}

build.gradle (应用级)

应用级的 build.gradle 文件包含了应用程序的具体配置,如应用程序的 ID、版本号、依赖等。




// 应用级的 build.gradle 文件


plugins {


    id 'com.android.application'


    id 'kotlin-android'


}


 


android

ActivityResultLauncherReplace startActivityForResult() method gracefully, based on the Activity Result API. (优雅地替代 startActivityForResult(),基于 Activity Result API)项目地址:https://gitcode.com/gh_mirrors/ac/ActivityResultLauncher

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...