Domanda

Qual è il modo corretto per passare un pacchetto per l'attività che viene lanciato da quello attuale? Requisiti comuni?

È stato utile?

Soluzione

Hai alcune opzioni:

1) Utilizzare il Bundle dal Intent :

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2) Creazione di un nuovo bundle

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

3) Utilizzare il putExtra () scorciatoia metodo dell'Intento

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);


Poi, in attività lanciato, si dovrebbe leggerli tramite:

String value = getIntent().getExtras().getString(key)

Nota: Bundle avere "get" e "put" metodi per tutti i tipi primitivi, parcelables e Serializables. Ho appena usato Corde per scopi dimostrativi.

Altri suggerimenti

È possibile utilizzare il bundle dal Intent:

Bundle extras = myIntent.getExtras();
extras.put*(info);

o di un intero pacchetto:

myIntent.putExtras(myBundle);

E 'questo quello che stai cercando?

Il passaggio dei dati da un un'attività all'altra in Android

Un intento contiene l'azione ed i dati opzionalmente aggiuntivi. I dati possono essere passati alle altre attività utilizzando il metodo putExtra() intenti. I dati vengono passati come comparse e sono key/value pairs. La chiave è sempre una stringa. Come valore che è possibile utilizzare tipi di dati primitivi int, float, caratteri, ecc Possiamo anche passare Parceable and Serializable oggetti da un'attività ad altri.

Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);

Recupero dei dati del pacco dall'attività Android

È possibile recuperare le informazioni utilizzando getData() i metodi per l'oggetto Intent. Il intenti oggetto può essere recuperato tramite la getIntent() metodo .

 Intent intent = getIntent();
  if (null != intent) { //Null Checking
    String StrData= intent.getStringExtra(KEY);
    int NoOfData = intent.getIntExtra(KEY, defaultValue);
    boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
    char charData = intent.getCharExtra(KEY, defaultValue); 
  }

È possibile passare valori da un'attività ad un'altra attività utilizzando il bundle. Nella vostra attività in corso, creare un pacchetto e impostare il pacchetto per il particolare valore e passare quel fagotto per l'intento.

Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);

Ora nel tuo NewActivity, è possibile ottenere questo pacchetto e retrive vostro valore.

Bundle bundle = getArguments();
String value = bundle.getString(key);

È anche possibile passare i dati attraverso l'intento. Nella vostra attività corrente, impostare l'intento di questo tipo,

Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);

Ora nel tuo NewActivity, è possibile ottenere quel valore da intenti di questo tipo,

String value = getIntent().getExtras().getString(key);

Scrivi questa è l'attività che si trovi in:

Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);

Nel NextActivity.java

Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));

Questo funziona per me, si può provare.

Fonte: https://www.c-sharpcorner.com/article/how-to-send-the-data-one-activity-to-another-activity-in-android-application/

è possibile utilizzare questo codice nel tuo prima attività :

 Intent i = new Intent(Context, your second activity.class);
        i.putExtra("key_value", "your object");
        startActivity(i);

e ottenere l'oggetto in seconda attività :

 Intent in = getIntent();
    Bundle content = in.getExtras();
   // check null
        if (content != null) {
            String content = content_search.getString("key_value"); 
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top