package Ġcom . open kotlin . sample . ank o Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . open kotlin . sample . R Ċ import Ġorg . jetbrains . ank o .* Ċ Ċ class ĠAn ko Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= ĠAn ko Activity :: class . simple Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠAn ko Layout (). set ContentView ( this ) ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġfind < Button >( R . id . btn Get Extras ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" key Ġ= Ġ${ intent . extras ?. getString (" key ")}, Ġint Key Ġ= Ġ${ intent . extras ?. getInt (" int Key ") }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfind < Button >( R . id . btn Browse ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse (" https :// www . kotlin cn . net / docs / reference /") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfind < Button >( R . id . btn P xD p Convert ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdp Value Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdp Ġto Ġpx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpx Ġ= Ġdip ( dp Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpx Ġto Ġdp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdp Ġ= Ġpx 2 dip ( px ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" px Ġ= Ġ$ px , Ġdp Ġ= Ġ$ dp ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfind < Button >( R . id . btn Attempt ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġattempt Ġ å¯¹åºĶ Ġjava Ġä¸ŃçļĦ Ġtry Ġ/ Ġcatch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġattempt Ġ èĭ¥ æŃ£å¸¸ æī§è¡Į ï¼Į value Ġè¿ĶåĽŀ ä»£çłģ åĿĹ ä¸ŃçļĦ è¿ĶåĽŀ åĢ¼ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġattempt Ġ{ Ġ 3 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" value Ġ= Ġ${ result . value }, Ġerror Ġ= Ġ${ result . error }, Ġis Error Ġ= Ġ${ result . isError }, Ġhas Value Ġ= Ġ${ result . hasValue }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġattempt Ġ èĭ¥ æī§è¡Į åĩº éĶĻ ï¼Į error Ġä¸Ń æĲ º å¸¦ éĶĻè¯¯ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġattempt Ġ{ Ġ 1 Ġ/ Ġ 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" value Ġ= Ġ${ result . value }, Ġerror Ġ= Ġ${ result . error }, Ġis Error Ġ= Ġ${ result . isError }, Ġhas Value Ġ= Ġ${ result . hasValue }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfind < Button >( R . id . btn Sdk Version ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsdk Ġå¤§ äºİ çŃīäºİ Ġ 2 1 Ġ æīį æī§è¡Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo From Sdk ( 2 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" sdk Ġversion Ġ>= Ġ 2 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsdk Ġ çŃīäºİ Ġ 2 9 Ġ æīį æī§è¡Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo If Sdk ( 2 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" sdk Ġversion Ġ== Ġ 2 9 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfind < Button >( R . id . btn Alert ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert (" I 'm Ġan Ġan ko Ġalert .") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Title Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Layout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorientation Ġ= ĠLinearLayout . HORIZONTAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpadding Ġ= Ġdip ( 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER _ VERTICAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageView ( R . mip map . ic _ launcher ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView (" Title "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpadding Ġ= Ġdip ( 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġok Button Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" OK ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Button Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Cancel ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfind < Button >( R . id . btn Selector ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa ges Ġ= ĠlistOf (" 1 0 ~ 2 0 ", Ġ" 2 0 ~ 3 0 ", Ġ" 3 0 ~ 4 0 ", Ġ"> 4 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselector (" How Ġold Ġare Ġyou ?", Ġa ges ) Ġ{ Ġ_, Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( ages [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ