zoukankan      html  css  js  c++  java
  • Android开发——Kotlin开发APP使用笔记

    之前一直使用java来开发Android项目,学了新的kotlin语言,前来试一试,并说一下kotlin对Android的一些功能增强

    创建项目

    我使用的是Android Studio3.0+,所以默认就支持kotlin

    创建项目的时候记得勾选kotlin支持

    找到实例与设置监听器

    以往我们是通过findviewbyid来找到实例,而kotlin中提供了一种更为快捷的方式,只需要一行代码,之后我们就可以直接使用布局里面的定义的各种实例了

    像平常一样,我们可以使用实例来更改控件的内容,同时,这个按钮也可以作为监听器的判断。

    以往我们的点击监听器,使用switch或者if语句来判断点击的控件,从而执行不同的操作。而kotlin中,直接使用实例判断,具体的代码在下面的MainActivity.java中

    switch(v.getId){
    	case R.id.btn:
    		//逻辑操作
    		break;
    }
    if(v.getId == R.id.btn){
    	//逻辑操作
    }
    

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.wan.noveldownloader.activity.MainActivity">
    
    <Button
        android:id="@+id/btn_test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="测试"  />
    </android.support.constraint.ConstraintLayout>
    

    MainActivity.java

    package com.wan.noveldownloader.activity
    
    import android.os.Bundle
    import android.view.View
    import com.wan.noveldownloader.R
    import kotlinx.android.synthetic.main.activity_main.*
    
    class MainActivity : BaseActivity(),View.OnClickListener {
        override fun onClick(v: View?) {
            when (v) {
    			//操作
                btn_test -> showToast("htllo")
            }
        }
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    		//这里的btn_test就是布局文件的按钮实例
    		//输入btn_test会自动增加一行import kotlinx.android.synthetic.main.activity_main.*
            btn_test.setOnClickListener(this)
        }
    }
    

    跳转

    val intent = Intent(this, SettingActivity::class.java)
    startActivity(intent)
    

    直接实现抽象类中接口方法

    使用object来实现抽象类接口方法

    val rvAdapter = object : RVAdapter<DownloadingItem>(lists) {
    
                override fun bindDataToView(holder: RVAdapter.RVViewHolder, position: Int, bean: DownloadingItem, isSelected: Boolean) {
    
                }
    
                override fun getItemLayoutID(position: Int, bean: DownloadingItem): Int {
                    return 0
                }
    
                override fun onItemClick(position: Int, bean: DownloadingItem) {
    
                }
            }
    
  • 相关阅读:
    C# 文件绝对路径与相对路径的转换
    DevExpress TreeList 禁止节点拖动到其他节点上
    C# 通过KD树进行距离最近点的查找.
    C# 利用键值对取代Switch...Case语句
    C# 利用位运算传递多个参数方法
    Deepin安装node与npm
    python-demo:计算合格率
    SpringDataJpa在一对多、多对多关系映射时出现StackOverflowError
    npm install 问题汇总
    CentOS7 使用firewalld打开关闭防火墙与端口
  • 原文地址:https://www.cnblogs.com/stars-one/p/11620091.html
Copyright © 2011-2022 走看看