zoukankan      html  css  js  c++  java
  • 000 初步使用Kotlin开发Android应用

    Kotlin是Jetbrians公司开发的一款编程语言,基于jvm兼容Java。

    要求

    IDE:IDEA或者Android Studio(简称studio)
    对Kotlin语言有所了解,官方文档:https://kotlinlang.org/docs/reference/

    在studio中安装kotlin插件:


    Kotlin插件

    创建一个Kotlin类的Activity


    创建Kotlin类

    在弹出对话框中选择创建类:


    MainActivity.kt

    一旦该类创建好之后会在编辑区的右上角出现警告提示:


    Kotlin支持警告


    点击警告中的蓝色字体会出现以下对话框:


    在工程中配置Kotlin

    两个单选,让你选择为整个项目中所有的module使用kotlin还是只有一个特定的module使用Kotlin。“Choose Kotlin plugin version”选择Kotlin的版本。配置好之后点击“OK”按钮。在编辑区右上角出现一下提示:


    配置完成之后的提示

    此时支持Kotlin的module中build.gradle已经备选修改,如下提示:


    build.gradle被修改

    此时点击Sync Now同步build.gradle
    到此为止MainActivity创建成功,但是它还不是一个Activity子类,需要继承
    Activity。

    使用Kotlin创建Activity类

    已经创建好的ManiActivity:

    class MainActivity {
    }

    此时ManiActivity还不是一个Activity,添加如下代码使之成为一个Activity

    import android.app.Activity
    class MainActivity: Activity() {
    }

    习惯使用Java的猿类可能会感到奇怪,“:”号在Kotlin语法中表示继承,为什么要继承Activity()而不是Activity,这与Kotlin语法有关。
    覆写OnCreate方法,并且创建一个TextView用于显示文本。

    import android.app.Activity
    import android.os.Bundle
    import android.widget.TextView
    
    class MainActivity : Activity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            val textView = TextView(this)
            textView.text = "Hello Kotlin"
            setContentView(textView)
        }
    }

    Kotlin比Java更简洁此处可以看到

    使用kotlin-android-extensions插件

    作用:使用kotlin-android-extensions插件可以让你不使用findViewById方法也能使用组件。
    创建一个ExtensionsActivity,并创建一个extensions_activity布局文件,布局文件中包含一个TextView,代码如下:
    ExtensionsActivity:

    import android.app.Activity
    import android.os.Bundle
    
    class ExtensionsActivity: Activity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
        }
    }

    extensions_activity:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:id="@+id/text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="24sp" />
    
    </RelativeLayout>

    修改Build.gradle中文件:添加kotlin-android-extensions插件

    buildscript {
        ext.kotlin_version = '1.0.0-beta-4584'
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
            classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
        }
    }

    classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"说明使用kotlin-android-extensions插件

    修改ExtensionsActivity代码,获取TextView组件并使用,代码会简单的多。

    import android.app.Activity
    import android.os.Bundle
    import kotlinx.android.synthetic.activity_extensions.text;
    
    class ExtensionsActivity: Activity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_extensions);
            text.text = "Dota"
        }
    }

    说明:
    import kotlinx.android.synthetic.activity_extensions.text
    意思是引入activity_extensions布局中id为text的组件。
    若要引入activity_extensions布局中的所有组件写法为:
    import kotlinx.android.synthetic.activity_extensions.*;

    将Java代码转换为Kotlin代码

    创建名为JavaToKotlinActivity的Activity:

    public class JavaToKotlinActivity extends AppCompatActivity {
        private int a, b;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_java_to_kotlin);
            a = 10;
            b = 20;
            Log.i("bail", "sum of a + b = " + (a + b));
        }
    }

    将Java代码传唤为Kotlin代码指引


    代码转换工具


    使用代码转换工具,并且有快捷键提示,每个平台的快捷键有可能不同。
    转换后的代码:

    import android.support.v7.app.AppCompatActivity
    import android.os.Bundle
    import android.util.Log
    
    class JavaToKotlinActivity : AppCompatActivity() {
        private var a: Int = 0
        private var b: Int = 0
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_java_to_kotlin)
            a = 10
            b = 20
            Log.i("bail", "sum of a + b = " + (a + b))
        }
    }

    总结

    在这篇文章中你已经初步学会在Android Studio中安装Kotlin插件,并在
    Android项目中使用Kotlin,Kotlin插件和Kotlin Android Extensions插件。由于Kotlin与Java有极大的交互性,如果继续坚持学习Kotlin,建议在Android项目学习。

    参考文章:http://code.tutsplus.com/tutorials/how-to-use-kotlin-in-your-android-projects--cms-24052

  • 相关阅读:
    正确理解TensorFlow中的logits
    笔记:TensorFlow全连接层函数tf.layers.dense()原理
    Pandas读取行列数据最全方法
    Oracle 怎么同时插入多条数据?
    tensorflow 中 sigmoid, softmax, sparse_softmax 的 cross_entropy_with_logits,常见loss
    Tensorflow同时加载使用多个模型
    衡量机器学习模型的三大指标:准确率、精度和召回率。
    【tensorflow】Decaying the learning rate
    2019.7.29 区块链论文翻译
    2019.7.16 区块链论文翻译
  • 原文地址:https://www.cnblogs.com/simadi/p/6688440.html
Copyright © 2011-2022 走看看