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变得更加的简单-简便,也可以节省不少你同事来问候你的时间。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值