碎片(Kotlin)
Fragment使用方式简单用法1.新建碎片布局 2.新建碎片类继承Fragment并在碎片类中动态加载碎片布局 3.将碎片引入活动布局 123456789101112//左碎片布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" and...
Kotlin延迟初始化和密封类
变量延迟初始化关键字lateinit 作用如果一个变量是全局变量且初始化在后面的过程中进行时该变量不得不赋值为null,但如果这样进行后面调用其任何方法都需要进行判空处理相对麻烦,所以这里可以使用延迟初始化,就不需要将其赋值为null了 注意使用延迟初始化时一定要保证后续某处对其完成了初始化 还可以通过代码进行判断是否完成了初始化 1234//::adapter.isInitialized表示已经初始化if(!::adapter.isInitialized){ adapter=MsgAdapter(msgList)} 密封类关键字sealed class 作用解决因语法原因导致的多余分支问题 实例123sealed class Resultclass Success(val msg:String):Result()class Failure(val error:Exception):Result() 1234fun getResultMsg(result:Result)=when(result){ is Success -> ...
UI开发(Kotlin)
常用控件TextView123456789<TextView android:id="@+id/textView"//定义唯一标识符 android:layout_width="match_parent"//控件宽度 android:layout_height="wrap_content"//控件高度 android:gravity="center"//文字位置 android:textColor="@color/red"//文字颜色 android:textSize="24sp"//文字大小 android:text="This is TextView"//文字内容 /> Button12345<Button android:id="@+id/button" a...
Kotlin定义静态方法
类静态方法kotlin特有,有与静态方法同样的语法特点但并非静态方法 静态方法特点是可以直接使用(类.方法)的形式调用 单例类12345object Util{ fun doAction(){ println("do action") }} 单例类中所以方法皆可以视为静态方法 如果只想某一方法变为静态方法可以使用companion object{} 12345678910class Util{ fun doAction1(){ println("do action1") } companion object{ fun doAction2(){ println("do action2") } }} 静态方法注解法(不常用)使用@JvmStatic注解(只能加在单例类或companion object{}中的方...
活动(Kotlin)
Toast1.一种提醒方式 2.用法 1234val button1: Button = findViewById(R.id.button1) button1.setOnClickListener { Toast.makeText(this,"You clicked out",Toast.LENGTH_SHORT).show() } ViewBinding1.先在build.gradle.kts(app)中导入ViewBinding 2.声明该类型 3.绑定布局 123456android { // 启用 ViewBinding viewBinding { enable = true }} 1234567891011121314class FirstActivity : BaseActivity() { //声明变量 private lateinit va...
Kotlin标准函数
with作用:可以在连续调用同一个对象的多个方法时让代码变得更简便 标准形式: 1234val result = with (obj){ //这里是obj的上下文 "value"//with函数返回值} 实例: 12345678910val list= listOf("Apple","Banana","Pear") val result=with(StringBuilder()){ append("Start eating fruits.\n") for(fruit in list){ append(fruit).append("\n") } append("Ate all Fruits") toString() } println(result) run作...
Kotlin语法
变量和函数变量1.由val和var声明变量,其中val声明不可变变量,var声明可变变量(建议所有变量开始由val修饰,后根据需要选择用var修饰) 2.也可以显示的声明变量类型,如val a : Int = 10 3.数据类型: 函数1.标准形式: 123fun methodName(param1: Int, param2: Int):Int{return 0} 2.语法糖: 当一个函数只有一行代码时,可以直接将那行代码直接写在函数定义的尾部用等号连接 fun largeNumber(num1: Int, num2: Int) = max(num1,num2) 程序的逻辑控制if条件句1.写法和Java的一样 2.和java不一样的点在于它可以有返回值,如: 1234567fun largeNumber(num1: Int, num2: Int) : Int{ return if(num1 > num2){ num1 }else{ num2 }...
高级技巧(Java)
全局获取Context1.定制自己的Application类 2.在Manifest.xml中进行初始化 3.如果有LitePal则在Application中调用LitePal初始化方法就行 1234567891011121314public class MyApplication extends Application { private static Context context; @SuppressLint("MissingSuperCall") @Override public void onCreate() { context = getApplicationContext(); LitePalApplication.initialize(context); } public static Context getContext(){ return context; }} 123<applicatio...
Material Design(Java)
Toolbar1.设置主题为Theme.AppCompat.Light.NoActionBar(淡色主题) 2.在layout中使用Toolbar 3..在Mainactivity获取toolbar实例 4.设置menu并在Mainactivity中使用 12345678910111213<resources xmlns:tools="http://schemas.android.com/tools"> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your light theme here. --> <item name="colorPrimary">@color/black</item> &...
服务(Java)
Android多线程编程线程的基本用法(1)1.新建一个类继承自Thread,并重写run方法 2.启动线程 1234567class MyThread extends Thread{ @Override public void run(){ //处理具体逻辑 }}new MyThread().start(); (2) 使用Runnable接口的方式来定义一个线程 12345678class MyThread implements Runnable{ @Override public void run(){ //处理具体逻辑 }}MyYhread myThread=new MyYhread();new Thread(myThread).start(); (3)匿名类的方法 123456new Thread(new Runnable(){ @Override public void run(...














