/* ĠCopyright Ġ 2 0 2 0 ĠPre E mpt ive ĠSolutions , ĠLLC . ĠAll ĠRights ĠReserved . Ċ Ġ* Ċ Ġ* ĠThis Ġsource Ġis Ġsubject Ġto Ġthe ĠMicrosoft ĠPublic ĠLicense Ġ( MS - PL ). Ċ Ġ* ĠPlease Ġsee Ġthe ĠLICENSE . txt Ġfile Ġfor Ġmore Ġinformation . Ċ Ġ*/ Ċ package Ġcom . dash o . android . kotlin Sample Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . OnClickListener Ċ import Ġandroid . widget . Toast Ċ import Ġkotlinx . android . synt hetic . main . random _ main . gen Btn Ċ import Ġkotlinx . android . synt hetic . main . random _ main . gen Number Ċ import Ġkotlinx . android . synt hetic . main . random _ main . rnd Max Num Ċ import Ġkotlinx . android . synt hetic . main . random _ main . rnd Min Num Ċ import Ġjava . text . NumberFormat Ċ import Ġjava . util . Random ĊĊ Ċ /** Ċ Ġ* ĠThe ĠRandom ĠNumber ĠGenerator Ċ Ġ* Ġ@ author ĠM att ĠIn sk o Ċ Ġ*/ Ċ class ĠRandom Gen Activity Ġ: ĠActivity (), ĠOn ClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġmin Str : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmax Str : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġnf Ġ= ĠNumber Format . getInteger Instance () ĊĠĠĠ Ġprivate Ġval Ġrnd Ġ= ĠRandom ( System . currentTimeMillis ()) ĊĊĠĠĠ Ġpublic Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . random _ main ) ĊĠĠĠĠĠĠĠ Ġgen Btn . setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPro cesses Ġthe Ġbutton Ġclick ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( v Ġ== Ġgen Btn ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen Number . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Str Ġ= Ġrnd Min Num . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmin Int Ġ= Ġmin Str ?. toInt () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Str Ġ= Ġrnd Max Num . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Int Ġ= Ġmax Str ?. toInt () Ġ?: Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min Int Ġ< Ġ 0 Ġ|| Ġmax Int Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , ĠR . string . bad Num , ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( max Int Ġ<= Ġmin Int ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , ĠR . string . min Max Err , ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgen Number . text Ġ= Ġnf . format ( find R nd ( min Int , Ġmax Int )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdlg Alert Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdlg Alert . setMessage ( R . string . bad Num ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdlg Alert . setTitle ( R . string . err Title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdlg Alert . set Positive Button ( Resources . getSystem (). getText ( android . R . string . ok ), Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdlg Alert . set Cancel able ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdlg Alert . create (). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠS aves Ġthe Ġrequest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġval Ġprefs Ġ= Ġget SharedPreferences (" R nd Prefs ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġpref Editor Ġ= Ġprefs . edit () ĊĠĠĠĠĠĠĠ Ġpref Editor . putString (" min ", Ġmin Str ) ĊĠĠĠĠĠĠĠ Ġpref Editor . putString (" max ", Ġmax Str ) ĊĠĠĠĠĠĠĠ Ġpref Editor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRest ores Ġthe Ġlast Ġrequest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġval Ġprefs Ġ= Ġget SharedPreferences (" R nd Prefs ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġmin Str Ġ= Ġprefs . getString (" min ", Ġ" 1 ") ĊĠĠĠĠĠĠĠ Ġmax Str Ġ= Ġprefs . getString (" max ", Ġ" 1 0 0 ") ĊĠĠĠĠĠĠĠ Ġrnd Min Num . setText ( min Str ) ĊĠĠĠĠĠĠĠ Ġrnd Min Num . setSelection ( min Str ?. length Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġrnd Max Num . setText ( max Str ) ĊĠĠĠĠĠĠĠ Ġrnd Max Num . setSelection ( max Str ?. length Ġ?: Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFinds Ġthe Ġrandom Ġnumber ĊĠĠĠĠ Ġ* Ġ@ param Ġmin ĠThe Ġminimum ĊĠĠĠĠ Ġ* Ġ@ param Ġmax ĠThe Ġmaximum ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġrandom Ġnumber ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfind R nd ( min : ĠInt , Ġmax : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrange Ġ= Ġmax Ġ- Ġmin Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġ(( rnd . next Double () Ġ* Ġrange ). toInt () Ġ+ Ġmin ) ĊĠĠĠ Ġ} Ċ } Ċ