1.传送配对字段数据

1.在Android中,我们用java代码写activity跳转的时候代码如下:

Intent intent = new Intent(MainActivity.this, OtherActivity.class);
startActivity(intent)

2.对应的kotlin代码如下:

val intent = Intent(this@MainActivity, OtherActivity::class.java)
startActivity(intent)
  • 对比之下,这里的kotlin代码与java代码主要有两点不同之处 *:
  1. 在类内部指代自身的关键字,Java的完整写法是 类名.this,而kotlin的完整写法是this@类名,二者也都可以简写为this
  2. 获取某个类的class对象,Java的写法是类名.class,而 kotlin的写法是类名::class.java,一看便知道带有很重的java风格

3.正宗的kotlin跳转写法如下:

startActivity()

究其原因,乃是Anko库利用kotlin的扩展函数给context类新增类名为startActivity的新方法,故而使用简化版的写法之前,必须先导入Anko库的指定代码,即在kt文件头部添加下面一行导入语句:
import org.jetbrains.anko.startActivity
除此之外,还需要在模块的bugld.gradledeperdencies节点中补充下述的anko-common包编译配置
compile "org.jetbrains.anko:anko-common:$anko_version"

4.intent传递参数对比

  • java代码如下:
Intent intent =  new Intent(this,ActSecondActivity.class);
intent.putExtra("request_time",DateUtil.getNowTime());
intent.putExtra("request_content","这是请求内容");
startActivity(intent);
  • 使用kotli结合anko的简化写法如下:
startActivity("request_time" to DateUtil.getNowTime(), "request_content" to "这是请求内容")
  • 是不是很简洁,但是还是不太美观,再次进行修改代码方式如下
startActivity(Pair("request_time", DateUtil.getNowTime()),Pair("request_content" , "这是请求内容"))

实际上与上面写法一致

你可能感兴趣的:(1.传送配对字段数据)