package Ġcom . example . calcul ador aim c Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . View Ċ import Ġandroid . view . accessibility . Accessibility Event Ċ import Ġandroid . widget . RadioButton Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . google . android . material . text field . TextInput EditText Ċ import Ġcom . google . android . material . text field . TextInput Layout Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġjava . text . Message Format Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġbtn Calc ular Im c . setOnClickListener ( View . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Ġ= ĠfindViewById < RadioButton >( radio Group . checked RadioButton Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġse xo Ġ= Ġse xo ( radio ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( valid ar ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġab rir Result ado ( sex o ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġedit Id ade . add TextChanged Listener ( clear ErrorMessage ( layout Edit Id ade )) ĊĠĠĠĠĠĠĠ Ġedit Alt ura . add TextChanged Listener ( clear ErrorMessage ( layout Edit Alt ura )) ĊĠĠĠĠĠĠĠ Ġedit Pes o . add TextChanged Listener ( clear ErrorMessage ( layout Edit Pes o )) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġse xo ( radio : ĠRadio Button ) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( getString ( R . string . checkbox _ mas cul ino ) Ġ== Ġradio . text . toString ()) Ġ 1 Ġelse Ġ 2 ĊĊĠĠĠ Ġprivate Ġfun Ġab rir Result ado ( sex o : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdados Im c Ġ= ĠD ados Im c ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġse xo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Id ade . text . toString (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Alt ura . text . toString (). toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Pes o . text . toString (). toDouble () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġintent Result ado Ġ= ĠIntent ( this , ĠResult ado Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent Result ado . putExtra (" dados Im c ", Ġdados Im c ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent Result ado ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalid ar () Ġ: ĠBoolean { ĊĠĠĠĠĠĠĠ Ġreturn Ġvalid ar Campo ( edit Id ade , Ġlayout Edit Id ade , Ġthis . getString ( R . string . label _ idade )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġvalid ar Campo ( edit Alt ura , Ġlayout Edit Alt ura , Ġthis . getString ( R . string . label _ alt ura )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġvalid ar Campo ( edit Pes o , Ġlayout Edit Pes o , Ġthis . getString ( R . string . label _ pes o )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalid ar Campo ( edit Text : ĠText Input EditText , Ġlayout EditText : ĠText Input Layout , Ġcampo : ĠString Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( edit Text . text . toString () Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout EditText . error Ġ= Ġformat ar Mens agem ( camp o ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . send Accessibility Event ( Accessibility Event . TYPE _ VIEW _ FOC USED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġformat ar Mens agem ( camp o : String ) Ġ: ĠString { ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġthis . getString ( R . string . label Message Error Mandatory ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ ĠMessage Format . format ( message , Ġcampo ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear ErrorMessage ( text : ĠText Input Layout ): ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt Ġ) Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext . error Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ