欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用Kotlin進(jìn)行Android開發(fā)

 更新時(shí)間:2017年05月19日 10:39:35   作者:asmcvc  
這篇文章主要教大家如何使用Kotlin進(jìn)行Android開發(fā),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Kotlin是一門基于JVM的編程語言,它正成長為Android開發(fā)中用于替代Java語言的繼承者。Java是世界上使用最多的編程語言之一,當(dāng)其他編程語言為更加便于開發(fā)者使用而不斷進(jìn)化時(shí),Java并沒有像預(yù)期那樣及時(shí)跟進(jìn)。   

Kotlin是由JetBrains創(chuàng)建的基于JVM的編程語言,IntelliJ正是JetBrains的杰作,而Android Studio是基于IntelliJ修改而來的。Kotlin是一門包含很多函數(shù)式編程思想的面向?qū)ο缶幊陶Z言?! ?/p>

Kotlin生來就是為了彌補(bǔ)Java缺失的現(xiàn)代語言的特性,并極大的簡化了代碼,使得開發(fā)者可以編寫盡量少的樣板代碼。據(jù)說是Android下的swift語言,而且是有jetBrains出品,有這么強(qiáng)大的IDE支持,一定錯(cuò)不了。

AndroidStudio安裝Kotlin開發(fā)插件:


點(diǎn)擊“Install JetBrains plugin”


輸入kotlin搜索,安裝下面那個(gè)Kotlin Extension For Android插件,安裝后重啟AS。

創(chuàng)建KotlinActivity:

新建Android工程,這一步和以前創(chuàng)建安卓工程的步驟類似,這個(gè)時(shí)候工程里面也沒有跟kotlin有半毛錢的關(guān)系。

只不過在工程創(chuàng)建完成后,再新建Activity的時(shí)候選擇KotlinActivity:


不帶分號結(jié)束的看起來就是舒服,習(xí)慣了Lua和Python。


自動(dòng)創(chuàng)建的界面布局文件和之前的沒什么區(qū)別,依然是xml格式的。同時(shí)manifest里也會(huì)自動(dòng)添加該Activity的聲明。

配置gradle:

如果IDE提示需要配置Kotlin的時(shí)候,就點(diǎn)擊配置就好了,會(huì)自動(dòng)在project和module的build.gradle里配置好。如果是手動(dòng)配置的話,請?jiān)趐roject的build.gradle里配置:

buildscript {
 ext.kotlin_version = '1.0.2'
repositories {
 jcenter()
 }
 dependencies {
 classpath 'com.android.tools.build:gradle:2.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

// NOTE: Do not place your application dependencies here; they belong
 // in the individual module build.gradle files
}
}

在module的build.gradle里配置:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

android {
 compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
 applicationId "com.example.demo_yunbu"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
 buildTypes {
 release {
 minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
 }
 sourceSets {
 main.java.srcDirs += 'src/main/kotlin'
}
}

dependencies {
 compile fileTree(dir: 'libs', include: ['*.jar'])
 compile 'com.android.support:appcompat-v7:23.1.1'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
repositories {
 mavenCentral()
}

最后IDE提示Sync Now,用用這些修改就好了。

最后我們在布局文件中添加一個(gè)TextView來演示控件的操作:

 <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvMessage"/>

然后在Activity代碼里就可以直接使用變量tvMessage了,如果有如下提示:


只需要按Alt+Enter導(dǎo)入布局文件的引用即可,自動(dòng)導(dǎo)入:

import kotlinx.android.synthetic.main.activity_main.*

然后可以直接使用變量tvMessage進(jìn)行操作了,非常方便,再也不用每個(gè)控件用findViewById查找一遍了。
以下是完整的代碼:

package com.example.hellokotlin

import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
 setContentView(R.layout.activity_main)
tvMessage.text = "hello kotlin!";
btnOpenActivity2.text = "OpenActivity2"
btnOpenActivity2.setOnClickListener({ startActivity(Intent(MainActivity@this, SecondActivity::class.java)) })
 }
}

把之前的java代碼轉(zhuǎn)換為Kotlin:

前面新建android工程的時(shí)候因?yàn)镸ainActivity并不是KotlinActivity,因此需要轉(zhuǎn)換一下,
選擇菜單Code->Convert Java File to Kotlin File
除了文件內(nèi)容改變之外,文件的擴(kuò)展名也從.java變?yōu)榱?kt。

編譯,出現(xiàn)錯(cuò)誤:
Error:(6, 8) Unresolved reference: kotlinx
Error:(13, 9) Unresolved reference: tvMessage
Error:Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details

提示缺少kotlin,需要手動(dòng)配置一下,在module的build.gradle里添加:

buildscript {
 repositories {
 jcenter()
 }
 dependencies {
 classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}

修改完成后Sync Now一次,編譯通過,運(yùn)行效果:


點(diǎn)擊按鈕后打開一個(gè)空白的頁面,這里就不截圖了。

使用anko創(chuàng)建界面:

前面的界面全部繼續(xù)使用了XML來創(chuàng)建的,這里演示下使用anko創(chuàng)建界面。首先配置gradle,在project的gradle里buildscript添加:

ext.anko_version = '0.8.2'

再在module的gradle里dependencies添加:

// Anko
compile "org.jetbrains.anko:anko-common:$anko_version"
compile 'org.jetbrains.anko:anko-sdk15:0.8.2' // sdk19, sdk21, sdk23 are also available
compile 'org.jetbrains.anko:anko-support-v4:0.8.2' // In case you need support-v4 bindings
compile 'org.jetbrains.anko:anko-appcompat-v7:0.8.2' // For appcompat-v7 bindings

最后Sync Now,成功后編輯SecondActivity的代碼:

package com.example.hellokotlin

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import org.jetbrains.anko.*

class SecondActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// setContentView(R.layout.activity_second)

verticalLayout {
padding = dip(30)
editText {
hint = "Name"
textSize = 24f
}
editText {
hint = "Password"
textSize = 24f
}
button("Login") {
textSize = 26f
onClick { toast(button@this.text) }
 }
 }
}
}

這里注釋掉了原來由setContentView來設(shè)置的xml布局,而使用了代碼直接創(chuàng)建,使用起來簡單直接了,但是缺點(diǎn)也很明顯,不能做到界面設(shè)計(jì)階段的實(shí)時(shí)預(yù)覽效果,很難做到所見即所得,好在xml還能繼續(xù)支持。運(yùn)行看下效果,點(diǎn)擊主界面的按鈕打開第二個(gè)頁面:


點(diǎn)擊Login按鈕彈出一個(gè)土司,文本就是該按鈕的文本。

參考:

《Kotlin for android developers》中文版翻譯 

Getting started with Android and Kotlin

Unresolved reference: kotlinx

Android開發(fā)必備知識:為什么說Kotlin值得一試

Kotlin在Android工程中的應(yīng)用

anko

使用Kotlin開發(fā)Android應(yīng)用

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Android性能優(yōu)化之內(nèi)存泄漏

    詳解Android性能優(yōu)化之內(nèi)存泄漏

    內(nèi)存泄漏(memory leak)是指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。本篇文章主要介紹了Android性能優(yōu)化之內(nèi)存泄漏,有興趣的可以了解一下。
    2016-12-12
  • Android中ListView下拉刷新的實(shí)現(xiàn)方法

    Android中ListView下拉刷新的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了Android中ListView下拉刷新的實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Flutter數(shù)字切換動(dòng)畫實(shí)現(xiàn)示例詳解

    Flutter數(shù)字切換動(dòng)畫實(shí)現(xiàn)示例詳解

    這篇文章主要為大家介紹了Flutter數(shù)字切換動(dòng)畫實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 基于VideoView自定義控制面板的視頻播放器

    基于VideoView自定義控制面板的視頻播放器

    這篇文章主要為大家詳細(xì)介紹了基于VideoView自定義控制面板的視頻播放器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • android onTouchEvent處理機(jī)制總結(jié)(必看)

    android onTouchEvent處理機(jī)制總結(jié)(必看)

    下面小編就為大家?guī)硪黄猘ndroid onTouchEvent處理機(jī)制總結(jié)(必看)小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • Android開發(fā)之經(jīng)典游戲貪吃蛇

    Android開發(fā)之經(jīng)典游戲貪吃蛇

    貪吃蛇是一款足夠經(jīng)典的游戲。它的經(jīng)典,在于用戶操作的簡單,在于技術(shù)實(shí)現(xiàn)的簡介,在于他的經(jīng)久不衰。下面來看下如何在Android開發(fā)這款經(jīng)典游戲。
    2016-07-07
  • Android實(shí)現(xiàn)多點(diǎn)觸控功能

    Android實(shí)現(xiàn)多點(diǎn)觸控功能

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)多點(diǎn)觸控功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Android標(biāo)題欄上添加多個(gè)Menu按鈕的實(shí)例

    Android標(biāo)題欄上添加多個(gè)Menu按鈕的實(shí)例

    這篇文章主要介紹了Android標(biāo)題欄上添加多個(gè)Menu按鈕的實(shí)例的相關(guān)資料,這里提供簡單實(shí)例說明如何添加多個(gè)menu按鈕的方法,需要的朋友可以參考下
    2017-09-09
  • Android仿支付寶支付密碼輸入框

    Android仿支付寶支付密碼輸入框

    這篇文章主要為大家詳細(xì)介紹了Android仿支付寶支付密碼輸入框的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android編程之防止反編譯的實(shí)現(xiàn)方法

    Android編程之防止反編譯的實(shí)現(xiàn)方法

    這篇文章主要介紹了Android編程之防止反編譯的實(shí)現(xiàn)方法,涉及Android針對運(yùn)行環(huán)境、簽名及程序相關(guān)信息的獲取與判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11

最新評論