说明
本篇简单介绍使用kotlin开放android的基本操作,有关kotlin的配置,文件创建,基础语法等。
创建kotlin开发环境
通过gradle创建基本的kotlin开发环境,需要使用kotlin支持插件,用于支持android开放,其基本配置build.gradle文件如下:
buildscript { ext.kotlin_version = '1.1.3-2' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' 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 } } repositories { repositories { jcenter() } } //使用android 插件 apply plugin: 'com.android.application' //使用kotlin支持android插件 apply plugin: 'kotlin-android' android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { applicationId "com.haolianluo.myapplication" minSdkVersion 21 targetSdkVersion 19 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" compile 'com.android.support:appcompat-v7:25.3.1' }
如上,为基本的kotlin支持配置,kotlin文件的后缀为*.kt,创建对应kt文件实现基本逻辑(和java类似)。如下,为一个基本的kotlin文件:
package cn.enjoytoday.bmob import android.app.Activity import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.widget.FrameLayout import android.widget.Toast import cn.bmob.v3.Bmob import cn.enjoytoday.R /** * bmob test activity. */ class BmobActivity constructor(name: String):Activity() { constructor(name:String,type:String):this(name){ } var BMOB_APP_ID:String="291b15675a92224a9170e6410fca8ff2" var fragment: FrameLayout?=null var main_layout: View?=null var register_layout: View?=null var sign_in_layout:View?=null var sign_out_layout:View?=null var upload_layout:View?=null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_bmob) Bmob.initialize(this,BMOB_APP_ID) initView() } /** * init view. */ fun initView(){ fragment= this.findViewById(R.id.content) as FrameLayout? main_layout=LayoutInflater.from(this).inflate(R.layout.bmob_main,null) register_layout=LayoutInflater.from(this).inflate(R.layout.bmob_register_layout,null) sign_in_layout=LayoutInflater.from(this).inflate(R.layout.bmob_sign_in_layout,null) sign_out_layout=LayoutInflater.from(this).inflate(R.layout.bmob_sign_out_layout,null) upload_layout=LayoutInflater.from(this).inflate(R.layout.bmob_upload_layout,null) /** * 当fragment为空时抛出异常 * fragment!!.removeAllViews() * * 当fragment为空时返回为空 */ fragment?.removeAllViews() fragment?.addView(main_layout) } fun onClick(view:View){ when(view.id){ R.id.register ->{ fragment?.removeAllViews() fragment?.addView(register_layout) } R.id.sing_in -> { fragment?.removeAllViews() fragment?.addView(sign_in_layout) } R.id.sign_out -> { fragment?.removeAllViews() fragment?.addView(sign_out_layout) } R.id.upload -> { fragment?.removeAllViews() fragment?.addView(upload_layout) } else -> { toast("No found this id.") } } } /** * toast add. */ fun Activity.toast(message: CharSequence, duration: Int = Toast.LENGTH_SHORT) { Toast.makeText(this, message, duration).show() } }
总结,如上kotlin使用的几个基础语法格式:
- 变量声明
变量通过关键字 var 修饰,基本格式如下:
var param:Type(变量类型,基本类型可以不写) = value
默认遍历使用需要进行初始化操作且不可为null,可以通过如下方式初始化:
var parma:String? =null //?可以为空
- 方法声明
方法使用格式如下:
[override] fun name(param1:String?,param2:Int):[Type]{ //实现 return p }
如上,override 为重写父类方法关键字,fun为方法声明关键字,param1:String?,param2:Int 为传递的参数名和参数类型,Type为返回值类型,默认为Void,无返回值。
- 类声明创建
kotlin 中的类的创建格式如下:
class BmobActivity constructor(name: String):Activity() { ... constructor(name:String,type:String):this(name){ //init } }
如上,class 为类声明符号,constructor为 BmobActivity 的主构造器,Activity为其继承的父类,constructor(name:String,type:String):this(name) 为其第二构造器.
- 参考
参考示例:https://github.com/fishly/AndroidDemo/tree/master/ActionBarDemo
来源:https://www.cnblogs.com/amiko/p/7906210.html