Kotlin语言入门之--浅尝Hello World

android studio 相关说明 | 2018-11-14 07:36

走过路过不要错过

浅尝Hello World

本文和大家一起共同在Androidstudio中,创建第一个使用Kotlin语言写的Android应用demo;

基础要求:

(1)android studio 版本最好是2.3以上;

(2)有网络,因为需要添加Kotlin插件;

2.实现步骤:

(1)按照正常的步骤创建一个demo;

(2)在Androidstudio的Setting-->Plugins中添加Kotlin插件;

(2)gradle的配置步骤:

1)app的gradle的配置:添加

apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'

2)project gradle的配置:

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

说明:如果是第一次配置的话,同步的时间会因为网络的状态不同而不同;公司网络太垃圾了。

布局依然用xml布局吧,咱们专心看代码:

3)先看实现hello  Kotlin 的Java代码:

package com.hmsts.kotlindemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    private TextView mTv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initData();          }    private void initView() {        mTv = (TextView) findViewById(R.id.tv_hello);    }    private void initData() {        mTv.setText("hello kotlin!");    }}

上图是转化Java代码到Kotlin语言:转换后的代码是:

package com.hmsts.kotlindemoimport android.support.v7.app.AppCompatActivityimport android.os.Bundleimport android.widget.TextViewclass MainActivity : AppCompatActivity() {    private var mTv: TextView? = null    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)        initView()        initData()    }    private fun initView() {        mTv = findViewById(R.id.tv_hello) as TextView    }    private fun initData() {        mTv!!.text = "hello kotlin!"    }}哈哈,这个看着有点复杂,其实这种不是正宗的Kotlin语言;下边的代码才是:

package com.hmsts.kotlindemoimport android.os.Bundleimport android.support.v7.app.AppCompatActivityimport kotlinx.android.synthetic.main.activity_main.*class MainActivity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)        tv_hello.setText(R.string.Hello_Kotlin)    }}有没有很简单?

先看看布局文件和string文件代码:

<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android=""    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.hmsts.kotlindemo.MainActivity">    <TextView        android:id="@+id/tv_hello"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/></LinearLayout>string  文件代码:

<resources><string name="app_name">KotlinDemo</string><string name="Hello_Kotlin">Hello Kotlin</string></resources>相对于Java语言,从这个demo中我们可以总结一下:

(1)Kotlin和Java是客户混淆使用的;

(2)在代码中,Kotlin是不写分号的;

(3)Kotlin代码中可以自动的找到相关的控件的,不用使用findViewByid()这样的语句的,所以ButterKnife这样的插件在Kotlin中没有用武之地的;

(4)类的命名:

class MainActivity : AppCompatActivity()关键字+类名称+:+父类名;

(5)重写方法的格式:

override fun onCreate(savedInstanceState: Bundle?)重写的关键字: override +fun +重写的方法名

(6)控件的获取和使用:

tv_hello.setText(R.string.Hello_Kotlin)直接使用xml文件中的命名,进行操作;

总结:通过这个简单的demo可以看出,Kotlin相比于Java是简便的,但是具体的规则还是需要在实际的开发中灵活应用;