Miten Android-sovelluksessa käynnistetään uusi toiminto (graafinen käyttöliittymä), kun toisen toiminnon painiketta napsautetaan, ja miten välitetään tietoja näiden kahden toiminnon välillä?
Rauhallisesti.
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value); //Optional parameters
CurrentActivity.this.startActivity(myIntent);
Ekstrat haetaan toisella puolella kautta:
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it's a string you stored.
}
Älä'unohda lisätä uutta toimintoa AndroidManifest.xml-tiedostoon:
<activity android:label="@string/app_name" android:name="NextActivity"/>
Luo aikomus ViewPerson-aktiviteetille ja anna PersonID (esimerkiksi tietokantahakua varten).
Intent i = new Intent(getBaseContext(), ViewPerson.class);
i.putExtra("PersonID", personID);
startActivity(i);
Sitten ViewPerson-aktiviteetissa voit hakea ylimääräisten tietojen nipun, varmistaa, ettei se ole nolla (jos joskus et välitä tietoja), ja hakea sitten tiedot.
Bundle extras = getIntent().getExtras();
if(extras !=null)
{
personID = extras.getString("PersonID");
}
Nyt jos sinun täytyy jakaa dataa kahden Activityn välillä, sinulla voi olla myös Global Singleton.
public class YourApplication extends Application
{
public SomeDataClass data = new SomeDataClass();
}
Kutsu sitä sitten missä tahansa aktiviteetissa seuraavasti:
YourApplication appState = ((YourApplication)this.getApplication());
appState.data.CallSomeFunctionHere(); // Do whatever you need to with data here. Could be setter/getter or some other type of logic
Uusien aktiviteettien aloittaminen tapahtuu lähettämällä aikomus, ja on olemassa tietynlainen aikomus, jota voit käyttää tietojen siirtämiseen aktiviteetista toiseen. Suosittelen, että tutustut intentteihin liittyviin Android-kehittäjien asiakirjoihin; niissä on runsaasti tietoa aiheesta, ja niissä on myös esimerkkejä.