Video: Top 10 Windows 10 Free Apps 2024
For å starte en aktivitet i en Android-app, ringer du ikke en metode. I stedet brenner du opp en hensikt. Så langt så bra. Men hvilken funksjon av en hensikt tar stedet for en metodeavles returverdi? I den følgende koden spør en aktivitet om et resultat.
pakke com. allmycode. resultater; importere android. app. Aktivitet; importere android. innhold. Intent; importere android. os. Bunt; importere android. utsikt. Utsikt; importere android. widget. TextView; offentlig klasse GetResultActivity utvider Aktivitet {final int MY_REQUEST_CODE = 42; TextView textView; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. main); textView = (TextView) findViewById (R. id. textView);} offentlig ugyldig påButtonClick (Vis v) {Intent intention = new Intent (); hensikt. setClassName ("com. allmycode. results", "com. allmycode. results. GiveResultActivity"); startActivityForResult (intent, MY_REQUEST_CODE);} @Override protected void onActivityResult (int requestCode, int resultCode, Intent Intent) {hvis (requestCode == MY_REQUEST_CODE && resultCode == RESULT_OK) {textView. setText (intent. getStringExtra ("text"))}}}
I koden du ser nedenfor gir en aktivitet et resultat
pakke com. allmycode. resultater; importere android. app. Aktivitet; importere android. innhold. Intent; importere android. os. Bunt; importere android. utsikt. Utsikt; importere android. widget. EditText; offentlig klasse GiveResultActivity utvider Aktivitet {EditText editText; @Override public void onCreate (Bundle state) {super. onCreate (tilstand); setContentView (R. layout. giver); editText = (EditText) findViewById (R. id. editText);} offentlig ugyldig påButtonClick (Vis arg0) {Intent intent = new Intent (); hensikt. putExtra ("text", editText. getText (). toString ()); setResult (RESULT_OK, hensikt); ferdig ();}}
Handlingene til koden ovenfor finner sted i tre trinn. Først ser brukeren GetResultActivity.
Når brukeren klikker på knappen Få et resultat, starter Android-samtaler startActivityForResult (hensikt, MY_REQUEST_CODE).
Metoden startActivityForResult tar en hensikt og en forespørselskode. I eksemplet peker hensikten eksplisitt på aktiviteten som startes. Forespørselskoden er en int verdi. Forespørselskoden identifiserer returresultatet når resultatet kommer. (Du kan ringe startActivityForResult mer enn en gang før du får noen resultater. Når resultater kommer, bruker du forespørselskoden til å skille et resultat fra et annet.)
Etter å ha klikket på knappen ser brukeren GiveResultActivity.
Resultatet av aktiviteten.Brukeren skriver inn tekst i tekstfeltet og klikker deretter Gå tilbake-knappen. Knappknappen fører til at koden skal skape en hensikt. Intentionen har ekstra informasjon - nemlig brukerens tekstinngang.
Samtalen til setResult sender en resultatkode (RESULT_OK, RESULT_CANCELED, eller en positiv int-verdi som er meningsfull for mottakeren) sammen med hensikten med nyttig informasjon.
Ved slutten av koden slutter sluttmetodeanropet aktivitetsløpet. Skjermen går tilbake til GetResultActivity.
Aktiviteten etter å ha fått et resultat.På dette tidspunktet kalles Android onActivityResult-metoden. Metoden bruker resultatet på en eller annen måte. (I dette eksempelet viser onActivityResult-metoden bare resultatet i et TextView-element.)