安卓重构系列-01使用Kotlin开发第一个Demo
第一个Kotlin安卓项目
- 背景
- 首先,你必须熟练掌握Kotlin这门编程语言,上手难度是不高的,而且真心很好用。
- 如今,越来越多的安卓项目使用Kotlin开发,现在已经有30%的项目使用Kotlin进行开发。
- 顺应时代,是每一个开发者的必备资质。
- 创建项目
- 新版的Android Studio可以在创建项目时勾选"Include kotlin support"表明这个项目可以使用Kotlin。
- 那么,比起原来的Java项目,这个Include改动了什么呢。
- module中build.gradle文件
// 使用Kotlin插件
apply plugin: 'kotlin-android'
// 使用Kotlin Android扩展插件
apply plugin: 'kotlin-android-extensions'
dependencies{ ...
// 添加Kotlin标准库
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
...}
- project中build.gradle文件
dependencies { ...
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
...}
- module中build.gradle文件
- 就是这些Kotlin的基础配置,使得开发改变。
- 创建了一个名为Demo的项目,稍微改动了一些布局,得到一个简约的HelloWorld页面效果。
- 遇到的问题
- 初次使用可能会遇到不少问题,如果是比较熟练的Android开发者,应该很快可以上手这种开发模式。
- IDE必须安装Kotlin插件,且buildTools和Gradle版本合适即可。
- 遇到问题可以私戳我。
- 补充说明
- 关于这个代码其实有很多不同于Java开发的地方,例如控件没有绑定、变量声明的改变,这些我在后面会一一解释。
MainActivity.kt
package com.zc.demoimport android.os.Bundle
import android.support.design.widget.Snackbar
import android.support.v7.app.AppCompatActivity;
import android.view.Menu
import android.view.MenuItem
import android.widget.Toastimport kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.content_main.*class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val context = thissetContentView(R.layout.activity_main)setSupportActionBar(toolbar)btn.setOnClickListener {Toast.makeText(context, "Hello World!!!", Toast.LENGTH_LONG).show()}fab.setOnClickListener { view ->Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show()}}override fun onCreateOptionsMenu(menu: Menu): Boolean {// Inflate the menu; this adds items to the action bar if it is present.menuInflater.inflate(R.menu.menu_main, menu)return true}override fun onOptionsItemSelected(item: MenuItem): Boolean {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.return when (item.itemId) {R.id.action_settings -> trueelse -> super.onOptionsItemSelected(item)}}
}
运行结果
具体源码可以查看我的GitHub,里面的gradle配置是合适的,这个项目我会不断完善,欢迎star或者fork。
安卓重构系列-01使用Kotlin开发第一个Demo相关推荐
- 安卓入门系列-01开发工具Android Studio的安装
Android Studio的安装 背景 谷歌在早几年就关闭了第三方支持,现在官方主推的开发工具就是Android Studio,所以我的安卓开发也是从as开始的. 步骤 下载IDE 像安卓这类开发, ...
- BDW01手把手系列01:BDW01开发板基于TencentOS Tiny之helloworld!
Hello world BDW01是一个接口资源十分丰富的物联网开发板. 本文先介绍开发板资源,然后是开发环境安装,环境搭建,最后在串口上输出创建的两个任务打印. 一.开发板BDW01入门介绍 1. ...
- 【vue系列-01】vue初级入门以及demo实现详解
vue的初级入门 1,vue是什么 2,vue的特点 2.1,采用组件化模式 2.2,声明式编码 2.3,虚拟DOM + Diff算法 3,vue的环境的基本配置和使用 3.1,在浏览器安装开发工具 ...
- 安卓入门系列-09一个实战小项目(备忘录Memo)
一个简单的安卓平台下的备忘录 背景 之前已经介绍了不少的控件(TextView和ListView等等)以及开发中最常见的组件(Activity)(Service的权重在我心中没有Activity重要, ...
- java转安卓快吗_安卓Kotlin开发系列之Java快速转Kotlin
原标题:安卓Kotlin开发系列之Java快速转Kotlin 自从Kotlin被宣布为Android开发语言的官方支持后,如今可谓是火的一塌糊涂,作为一名Android程序员,如何快速爬坑?今天为大家 ...
- PHP扩展开发系列01 - 我要成为一名老司机
PHP扩展开发系列01 - 我要成为一名老司机 1. 关于扩展的教程貌似挺全了,为啥还写? 记录下我写扩展的历程 自认为会写的更容易理解 我的宗旨就是 "先用再识" 代码写着写着就 ...
- 【安卓开发系列 -- APP】APP 开发基础技术整理
[安卓开发系列 -- APP]APP 开发基础技术整理 [1]Android Studio APP 项目目录布局 [2]活动的生命周期 活动的状态 : 1. 运行状态,一个活动位于返回栈栈顶时,活动 ...
- python ai 教学_【Python AI教学】从零开始学Python AI开发系列01
原标题:[Python AI教学]从零开始学Python AI开发系列01 欢迎开启新的旅程. 从2016年开始,AI人工智能的热潮扑面而来.而在机器学习和深度学习领域,Python位于最受欢迎的编程 ...
- Auto.js Pro安卓免ROOT引流脚本开发系列教程27网易公开课(5)-UI界面构建
课程内容 脚本前端UI界面的构建 创建话术输入框(随机话术) 创建勾选框(性别选择.话术前加入昵称.话术后添加随机符号表情) 开发文档 在线文档 APP名称 网易公开课 APP版本 安卓客户端:v6. ...
最新文章
- Linux环境安装卸载JDK以及安装Tomcat和发布Java的web程序
- 夜宵虽好,可不要贪“杯”哦
- python3.6安装pyqt5-Python3.6安装PyQt5的方法
- 北京内推 | 微软亚洲互联网工程院(STCA)招聘NLP算法实习生
- Vue利用Vue.extend()实现自定义弹出框
- OpenGL实现3D立体显示
- php mysql 单例模式_PHP单例模式_PHP单例模式数据库连接类
- php 子进程_PHP 多进程入门
- 算法——排序——插入排序图解动画
- 如何给Mac电脑的磁盘进行分区?
- 模糊C均值聚类算法---图像分割(python)
- verilog语法检查
- 电脑重装系统后c盘数据能恢复吗?
- 【小程序从0到1】小程序常用组件一览
- 【每日一练】56—CSS实现一款实用的响应式卡片悬停效果
- 取名算法之用JAVA实现姓名测试
- 一只喵的西行记-9 喵林英雄虹猫梦
- P5723 【深基4.例13】质数口袋
- 构造方法调用另一个构造方法
- ubuntu下查看电脑系统信息