大中锋熊二内线肉搏奥尼尔 發表於 2019-10-3 16:52:00

Android开发——Kotlin开发APP使用笔记

<p>之前一直使用java来开发Android项目,学了新的kotlin语言,前来试一试,并说一下kotlin对Android的一些功能增强</p>
<h2 id="创建项目">创建项目</h2>
<p>我使用的是Android Studio3.0+,所以默认就支持kotlin</p>
<p>创建项目的时候记得勾选kotlin支持</p>
<p><img src="https://img2018.cnblogs.com/blog/1210268/201910/1210268-20191003164204368-257226354.png" alt="" loading="lazy"></p>
<h2 id="找到实例与设置监听器">找到实例与设置监听器</h2>
<p>以往我们是通过findviewbyid来找到实例,而kotlin中提供了一种更为快捷的方式,只需要一行代码,之后我们就可以直接使用布局里面的定义的各种实例了</p>
<p>像平常一样,我们可以使用实例来更改控件的内容,同时,这个按钮也可以作为监听器的判断。</p>
<p>以往我们的点击监听器,使用switch或者if语句来判断点击的控件,从而执行不同的操作。而kotlin中,直接使用实例判断,具体的代码在下面的MainActivity.java中</p>
<pre><code>switch(v.getId){
        case R.id.btn:
                //逻辑操作
                break;
}
if(v.getId == R.id.btn){
        //逻辑操作
}
</code></pre>
<p><strong>activity_main.xml</strong></p>
<pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;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"&gt;

&lt;Button
    android:id="@+id/btn_test"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="测试"/&gt;
&lt;/android.support.constraint.ConstraintLayout&gt;
</code></pre>
<p><strong>MainActivity.java</strong></p>
<pre><code>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 -&gt; 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)
    }
}
</code></pre>
<h2 id="跳转">跳转</h2>
<pre><code>val intent = Intent(this, SettingActivity::class.java)
startActivity(intent)
</code></pre>
<h2 id="直接实现抽象类中接口方法">直接实现抽象类中接口方法</h2>
<p>使用object来实现抽象类接口方法</p>
<pre><code>val rvAdapter = object : RVAdapter&lt;DownloadingItem&gt;(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) {

            }
      }
</code></pre>


</div>
<div id="MySignature" role="contentinfo">
    <hr>
<span>提问之前,请先看</span>提问须知
<span>点击右侧图标发起提问</span>
<img border="0" src="http://wpa.qq.com/pa?p=2:1053894518:52" alt="联系我" title="联系我">
<span>或者加入QQ群一起学习</span>
<img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="Stars-One安卓学习交流群" title="Stars-One安卓学习交流群">
TornadoFx学习交流群:1071184701
<img src="https://img2020.cnblogs.com/blog/1210268/202003/1210268-20200316120825333-1551152974.png" width="1000" height="auto">
<img src="https://img2018.cnblogs.com/blog/1210268/201905/1210268-20190508151523126-971809604.gif" width="1000" height="auto">
<!--<img src="https://img2020.cnblogs.com/blog/1210268/202004/1210268-20200413161422035-1188549898.gif" width="1000" height="auto">--><br><br>
来源:https://www.cnblogs.com/stars-one/p/11620091.html
頁: [1]
查看完整版本: Android开发——Kotlin开发APP使用笔记