IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Activity 跳转最佳实现方案 -> 正文阅读

[移动开发]Activity 跳转最佳实现方案

Activity 跳转最佳实现方案


启动 Activity 的最佳方式

启动 Activity的方法相信大家已经很熟悉了,首先通过Intent构建当前的 “意图” ,然后调用startActivity()startActivityForResult()方法将Activity 启动起来,如果有数据需要在Activity之间传递则需要借助Intent来完成。

假设SecondActivity中需要用到两个非常重要的字符串参数,在启动SecondActivity的时候必须传递过来 ,那么我们很容易写出以下代码:

val intent=Intent(this,SecondActivity::class.java)
intent.putExtra("param1","data1")
intent.putExtra("param2","data2")
startActivity(intent)

虽然这样写完全正确的,但是真正开发的项目中经常遇到这个问题。比如: SecondActivity 并不是由你开发的,但是现在你负责开发的部分需要启动SecondActivity,而你不清楚启动SecondActivity需要哪些数据。这时无非就两个办法:一个你自己阅读SecondActivity中的代码,另一个就是去问候编写SecondActivity的同事。这样做确实很麻烦,这时换一种写法,就可以打破这窘境:

修改 SecondActivity 中的代码-Kotlin:

class SecondActivity:AppCompatActivity() {

	......
	
    companion object {
        fun actionStartActivity(context:Context,title:data1,content:data2){
            val intent=Intent(context,SecondActivity::class.java).apply {
                putExtra("param1",data1)
                putExtra("param2",data2)
            }
            context.startActivity(intent)
        }
    }
}

修改 SecondActivity 中的代码-Java:

public class SecondActivity extends NewsContentActivity {
    
    .......
    
    public static void actionStartActivity(Context context,String data1,String data2){
        Intent intent=new Intent(context,SecondActivity.class);
        intent.putExtra("param1",data1);
        intent.putExtra("param2",data2);
        context.startActivity(intent);
	}
}

在这里我们使用了一个新的语法结构companion object ,并在companion object中定义了一个actionStartActivity的方法。之所以要这样写是因为kotlin有规定,所有定义在companion object中的方法都可以使用类似Java静态方法形式调用。

那么,这么写有什么好处呢?

最重要的一幕了然,NewsContentActivity所需要的重要数据在方法参数中全部体现出来了,这样既使不用阅读NewsContentActivity中的代码,也不用去问候编写NewsContentActivity的同事,你就可以很清晰的知道启动NewsContentActivity需要哪些数据。并且还简化了启动Activity的代码:

kotlin:

button.setOnClickListener {
    SecondActivity.actionStartActivity(this,"data1","data2")
}

Java:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        SecondActivity.actionStartActivity(this,"data1","data2")
    }
});

养成一个好习惯,给你编写的每一个Activity都加上类似的启动方法把,这样不仅可以让启动Activity变得更加的简单-简便,也可以节省不少你同事来问候你的时间。


  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:40:06  更:2021-07-10 14:40:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 7:02:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码