用Kotlin實現Android點選事件
阿新 • • 發佈:2019-02-01
近期,Google宣佈Kotlin成為了Android一級開發語言。於是就剛剛簡單的研究了一下,查資料的時候發現現成的資料還是很少的,於是決定自己記錄一下,方便以後檢視,也供其他人一個參考。
在android中,點選事件大致分為三種寫法:
1. 匿名內部類。
2. Activity實現全域性OnClickListener介面。
3. 指定xml的onClick屬性。
今天用Kotlin實現這三種方式實現點選事件
-
匿名內部類:這種方式最簡單
這裡不需要new OnClicklistener。override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) bt_click.setOnClickListener { Toast.makeText(this
-
全域性實現OnClickListener介面:
class MainActivity : AppCompatActivity(), View.OnClickListener { override fun onClick(v: View?) { when (v?.id) { R.id.bt_click -> Toast.makeText(this, "點選了", Toast.LENGTH_SHORT).show() } } override
這種方法與java的區別是沒有implements關鍵字表示實現介面。
when就相當於java中的switch。
“:”符號改為了“->”。 -
指定onClick屬性:
fun click(v: View?) { when (v?.id) { R.id.bt_click -> Toast.makeText(this
<Button android:id="@+id/bt_click" android:layout_width="match_parent" android:layout_height="50dp" android:onClick="click" android:text="點選" />