近期,Google宣布Kotlin成為了Android一級開發(fā)語言。于是就剛剛簡單的研究了一下,查資料的時(shí)候發(fā)現(xiàn)現(xiàn)成的資料還是很少的,于是決定自己記錄一下,方便以后查看,也供其他人一個(gè)參考。
在android中,點(diǎn)擊事件大致分為三種寫法:
1. 匿名內(nèi)部類。
2. Activity實(shí)現(xiàn)全局OnClickListener接口。
3. 指定xml的onClick屬性。
今天用Kotlin實(shí)現(xiàn)這三種方式實(shí)現(xiàn)點(diǎn)擊事件
匿名內(nèi)部類:這種方式最簡單
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) bt_click.setOnClickListener { Toast.makeText(this,"點(diǎn)擊了",Toast.LENGTH_SHORT).show(); } }這里不需要new OnClicklistener。
全局實(shí)現(xiàn)OnClickListener接口:
class MainActivity : AppCompatActivity(), View.OnClickListener { override fun onClick(v: View?) { when (v?.id) { R.id.bt_click -> Toast.makeText(this, "點(diǎn)擊了", Toast.LENGTH_SHORT).show() } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) bt_click.setOnClickListener(this) }}這種方法與java的區(qū)別是沒有implements關(guān)鍵字表示實(shí)現(xiàn)接口。
when就相當(dāng)于java中的switch。
“:”符號改為了“->”。
指定onClick屬性:
fun click(v: View?) { when (v?.id) { R.id.bt_click -> Toast.makeText(this, "點(diǎn)擊了", Toast.LENGTH_SHORT).show() } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) }<Button android:id="@+id/bt_click" android:layout_width="match_parent" android:layout_height="50dp" android:onClick="click" android:text="點(diǎn)擊" />
以上就是這三種點(diǎn)擊事件的寫法。如果有語法不懂,關(guān)鍵字不知道什么意思可以去查一下官方文檔。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選