Autore Topic: Passaggio parametri fra activity  (Letto 384 volte)

Offline Neoxxx

  • Translate Team
  • Utente junior
  • **
  • Post: 114
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Sistema operativo:
    Windows 7
Passaggio parametri fra activity
« il: 26 Dicembre 2014, 18:34:29 CET »
0
Ciao a tutti, sto leggendo molte cose riguardo il passaggio di parametri fra activity ma non riesco in sostanza ad effettuarlo.
Situazione: dall'activity 1 chiamo activity 2 la quale deve leggere un codice a barre e restituire la stringa all'activity 1.

Da Activity 1 eseguo:

Codice: [Seleziona]
Intent intent = new Intent(getActivity(), Activity2.class);
                   
intent.putExtra("codice a barre", codice);
               
getActivity().startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);


Ora nell'activity 2 come faccio ad impostare la variabile codice con la stringa giusta e poi ripassarla all'activity 1?


Grazie

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Passaggio parametri fra activity
« Risposta #1 il: 26 Dicembre 2014, 20:02:51 CET »
0
quando sei nell' Activity 2 fai quello che devi fare. Poi chiami setResult(). Poi chiami finish()

Offline Neoxxx

  • Translate Team
  • Utente junior
  • **
  • Post: 114
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Sistema operativo:
    Windows 7
Re:Passaggio parametri fra activity
« Risposta #2 il: 26 Dicembre 2014, 20:52:56 CET »
0
Nell'activity 2 se faccio:

Codice: [Seleziona]
Intent i=getIntent();
String prova=i.getStringExtra("codice");

e stampo prova contiene quello che avevo impostato in codice.
Ora vorrei scrivere dentro codice (o prova) e ritornarlo a Activity 1. Questo non mi è chiaro come farlo.

@tonno

setResult mi dice che non esiste perchè la mia activity non deriva dalla classe activity di android e non saprei come usarlo

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Passaggio parametri fra activity
« Risposta #3 il: 26 Dicembre 2014, 21:20:40 CET »
0
Sinceramente passare da fragment non ricordo. Forse devi comunicare con la tua Activity. Non ricordo

Offline Neoxxx

  • Translate Team
  • Utente junior
  • **
  • Post: 114
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Sistema operativo:
    Windows 7
Re:Passaggio parametri fra activity
« Risposta #4 il: 26 Dicembre 2014, 22:11:48 CET »
0
Inserisco il codice magari si capisce meglio:

Activity 1 (anche se non è una vera activity)

Codice: [Seleziona]
public class QRCodeViewFactory extends AbstractViewFactory implements InteractionManagerListener {
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1;

public void startCamera(QRCode listener) {
Intent intent = new Intent(getActivity(), Activity2.class);
getActivity().startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);}


@Override
public void onEvent(int eventID, Object[] arguments) {
Log.i(TAG, "onEvent: " + eventID);
               
switch (eventID) {

case ACTIVITY_RESULT:
                       
                        Log.i(TAG, "onEvent ActivityResult");

                        int requestCode = (Integer) arguments[0];

                        int resultCode = (Integer) arguments[1];
                       
                        Intent intent = (Intent) arguments[2];
                       
               
                       
                        if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE
                                        && resultCode == android.app.Activity.RESULT_OK) {

                        FA QUALCOSA
}



Activity 2:

Codice: [Seleziona]
public class SimpleScannerActivity extends ActionBarActivity implements ZBarScannerView.ResultHandler {

.........


 public void handleResult(Result rawResult) {
           
           
           
       
       
       
       
           
       
       
        Toast.makeText(this, "Contents = " + rawResult.getContents() +
                ", Format = " + rawResult.getBarcodeFormat().getName(), Toast.LENGTH_SHORT).show();
     
       
       
       
        super.finish();

}