Kotlin在Android上的運用(二)
這次主要寫一下kotlin上的函式運用和bean類運用
一、控制元件的動態使用
先看一下xml佈局檔案
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.hao.myrxjava.MainActivity" >
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>
我們在程式碼動態設定textview的內容,我們只需要這樣
package com.hao.myrxjava;
import android.os.Bundle
import android.support .v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textview.text = "123"
}
}
我滴哥啊,是不是很神奇,只需要一行程式碼,textview是TextView的id,這樣寫之前必須匯入
import kotlinx.android.synthetic.main.activity_main.*
如果像我們之前的Java程式碼需要倆步
TextView textview = (TextView) findViewById(R.id.textview);
textview.setText("123");
不要小看只少了一句程式碼,仔細想想看,如果在一個複雜的佈局裡面有很多控制元件,是不是程式碼會少了很多啊
二、對控制元件加監聽
對上面提到的textview新增點選監聽事件,我們只需要
textview.setOnClickListener {
//do something
}
真的是很簡單啊,程式碼少了匿名內部類的好多程式碼,如果是Java程式碼我們需要
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do something
}
});
是不是感覺到爽了,Kotlin就是如此
三、bean類的運用
在Java中bean類寫法
package com.hao.myrxjava;
/**
* java bean類
*
* @author zhanghaohao089
* @date 2017/5/19
*/
public class PeopleBean {
private String name;
private String sex;
public PeopleBean(String name, String sex) {
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
bean類定義了倆個屬性 name sex。為什麼bean類的屬性都定義為private,是為了屬性許可權定於為私有的不能隨意改變,改變只能通過get、set函式,然而有時候需要做一些額外的操作,只需要在get、set函式裡寫程式碼就可以了。然而也可以用AOP實現
再看一下Kotlin上bean類的實現
data class PeopleBean(var name: String, var sex: String)
我的乖乖,只需要一句程式碼就搞定了
var peopleBean= PeopleBean("name", "sex");
peopleBean.name = "name1";
peopleBean.sex = "sex1";
相關推薦
Kotlin在Android上的運用(二)
這次主要寫一下kotlin上的函式運用和bean類運用 一、控制元件的動態使用 先看一下xml佈局檔案 <?xml version="1.0" encoding="utf-8"?>
HTML5+Canvas+jQuery調用手機拍照功能實現圖片上傳(二)
customer mkdir 狀態保存 ont false lan else if 項目 action 上一篇僅僅講到前臺操作,這篇專門涉及到Java後臺處理。前臺通過Ajax提交將Base64編碼過的圖片數據信息傳到Java後臺,然後Java這邊進行接收處理。通過
Python Selenium 文件上傳(二)
rip info python 拼接 type 項目 shee editor 可執行文件 今天補充一種文件上傳的方法 主要是因為工作中使用SendKeys方法不穩定,具體方法見: Python Selenium 文件上傳(一) 這種方法直接通過命令行執行腳
Python WebDriver 文件上傳(二)
html 默認 定位 com http 圖形用戶界面 網站 如果 應用 今天補充一種文件上傳的方法 主要是因為工作中使用SendKeys方法不穩定,具體方法見: Python WebDriver 文件上傳(一) 這種方法直接通過命令行執行腳本時沒有問題,可以成功上
牛客網線上程式設計(二):數的高度-python
題目描述 現在有一棵合法的二叉樹,樹的節點都是用數字表示,現在給定這棵樹上所有的父子關係,求這棵樹的高度 輸入描述: 輸入的第一行表示節點的個數n(1 ≤ n ≤ 1000,節點的編號為0到n-1
HTML5+Canvas+jQuery呼叫手機拍照功能實現圖片上傳(二)
上一篇只講到前臺操作,這篇專門涉及到Java後臺處理,前臺通過Ajax提交將Base64編碼過的圖片資料資訊傳到Java後臺,然後Java這邊進行接收處理,通過對圖片資料資訊進行Base64解碼,之後使用流將圖片資料資訊上傳至伺服器進行儲存,並且將圖片的路徑地址存進資料庫。
html頁面中拍照和上傳照片那些事兒(二)
read itl 加載完成 大小 上傳照片 那些事 cnblogs 設置 新建 本文為原創,轉載請註明出處: cnzt 文章:cnzt-p http://www.cnblogs.com/zt-blog/p/6895352.html 本文主要說下iOS上
HBase源代碼分析之HRegion上MemStore的flsuh流程(二)
初始化 back represent 代碼分析 讀數 ott pass expect 出現異常 繼上篇《HBase源代碼分析之HRegion上MemStore的flsuh流程(一)》之後。我們繼續分析下HRegion上MemStore flush的核心方
在Windows Server 2008 R2 Server中,上傳視頻遇到的問題(二)
content 修改 strong 報錯 con 節點 fail get tle 上一篇 在Windows Server 2008 R2 Server中,上傳視頻遇到的問題(一)中遇到上傳40M視頻報404,然後修改配置文件節點: <httpRuntime tar
android源碼編譯——從此走上Liunx的不歸路(二)
彈出 oid log 按鈕 鍵盤 點擊 使用 andro android Ubuntu安裝: 1.啟動虛擬機進入到如下界面: 2.下拉找到“中文(簡體)”選項,然後選擇“安裝Ubuntu”: 3.點擊繼續: 4.選擇清除整
SpringMVC中文件的上傳(上傳到服務器)和下載問題(二)--------下載
cat exc stream log trac close pri page fin 一、建立一個簡單的jsp頁面。 我們在建好的jsp的頁面中加入一個超鏈接:<a href="${pageContext.request.contextPath}/down
Redis實戰(二)CentOS 7上搭建redis-3.0.2
str 進程 ps 禁用 安裝redis 結果 redis 啟動服務 pro bin 1.安裝redis wget http://download.redis.io/releases/redis-3.0.2.tar.gz tar zxvf redis-3.0.2.tar
關於Unity視頻播放器插件 AVPro Video(二)3D物體上視頻播放
org 圖片 平面 type http com 項目創建 attr data 1.官網下載該插件或者我分享的鏈接: 鏈接:https://pan.baidu.com/s/1boGeJ8r 密碼:mvbf 2.新建項目創建主要控制物體 3.創建對於視頻播放在3D物體身上的
Lnmp上安裝Yaf學習(二)
str 最簡 virtual 去掉 ota 一個 wid home 創建 上一節主要實踐了在Lnmp上安裝Yaf擴展,那麽這一節將測試 Yaf 的一個簡單demo的運行。 一、通過Lnmp 創建 vhost 文件 [root@localhost yaf-3.0.6]#
使用Ueditor上傳圖片到圖片服務器(二)
java tpc linux 是我 jsp 使用 其他 div .cn 上一篇主要寫了前端部分如何配置ueditor的上傳路徑,已經jsp頁面中如何使用ueditor的編輯器功能以及如何配置單獨的圖片上傳功能。 這一篇,我分兩部分:第一部分是搭建圖片服務器以及配置ftp上傳
centos7上安裝memcached以及PHP安裝memcached擴展(二)
new zxvf ould get blank .so emca post dev 開始在 PHP 中使用 Memcached 前, 我們需要確保已經安裝了 Memcached 服務,接下來安裝 php-memcached 擴展。 PHP Memcached 擴展安裝
使用Unity實現VR中在黑板上寫字(升級篇)(二)----- 加入黑板擦
turn isequal 是什麽 true int bool float sta oca 黑板擦的功能其實和畫筆是一樣的,只是黑板擦設置的顏色是畫板最原始的顏色,而筆設置的是其他的顏色。 所以最大的不同時,當手柄握住黑板擦時和握住筆時的函數實現是不一樣的;實現這個功能之後,
站在DevOps肩膀上的TestOps(二)
理想 好的 好處 允許 圖片 每次 失敗 adding 最好 一十一 發表於 2018-03-14 16:40:22 TestOps 摘要: TestOps模型旨在將整個團隊的註意力集中在質量上,因此TestOps確實需要無
spring cloud實戰與思考(二) 微服務之間通過fiegn上傳多個文件1
jar 多文件 上傳文件 ret nmap spa 不同 port 問題 需求場景: 微服務之間調用接口一次性上傳多個文件。 上傳文件的同時附帶其他參數。 多個文件能有效的區分開,以便進行不同處理。 Spring cloud的微服務之間接口調用使用Feign。原裝的
CentOS7上安裝配置GitLab(二)
false vim console 情況 pos 而是 and build pass 一、配置外部SMTP郵箱服務器1. 配置163郵箱服務器# vim /etc/gitlab/gitlab.rb gitlab_r