Autore Topic: activity ricreata una o do volte dopo un onactivityresult  (Letto 449 volte)

Offline fieraf

  • Utente junior
  • **
  • Post: 88
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 2
  • Sistema operativo:
    windows 7
activity ricreata una o do volte dopo un onactivityresult
« il: 17 Febbraio 2012, 10:17:43 CET »
0
ciao ragazzi
Ho un activity che lancia attraverso un intent con un startactivityforresult, la camera di un samsung note android 2.3.6
quando  ritorno nell'activity principale con onactivityresult, a volte la applicazione no fa quello che voglio perché viene creata 1 o piú volte distruggendo tutte le variabili impostate.
me ne sono accorto mettendo dei toast nei metodi onresume e oncreate.

Perché tutto ció?
No dovrebbe solo attivarsi il metodo onresume?
mi aiutate per favore?? :-[ :-[

posto il metodo onactivityresult e la sub che chiam la activity:

Codice (Java): [Seleziona]
    public void ButtonFotoClick(View view) {
        if ( elemento!=null){
                // create Intent to take a picture and return control to the calling application
            idbottone=view.getId();
            if (view.getId()==R.id.ButtonFoto1){
             fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE,"IMG1_"); // create a file to save the image
             nomefoto1=fileUri.getLastPathSegment();
            }else{
                 fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE,"IMG2_");// create a file to save the image
                 nomefoto2=fileUri.getLastPathSegment();
            }
           Intent intentfoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            intentfoto.putExtra(MediaStore.EXTRA_OUTPUT,fileUri); // set the image file name
              // start the image capture Intent
            startActivityForResult(intentfoto, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
        }else{
                 Toast.makeText(this, "devi selezionare un elemneto", Toast.LENGTH_LONG).show();
        }
       
    }

Codice (Java): [Seleziona]
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        //super.onActivityResult( requestCode, resultCode, data );
        if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
                 if (resultCode == RESULT_OK) {
                        // Image captured and saved to fileUri specified in the Intent
                         removeImage(getLastImageId());//rimuove immagine dalla galleria
                         if (nomefoto1.contains("IMG1")){
                           foto1fatta=true;
                         nomefoto1="nofoto";
                           layoutfoto2.setVisibility(LinearLayout.VISIBLE);
                           BottonevalidaDati.setVisibility(Button.VISIBLE);
                           cambiastatofoto(R.id.prossof1 ,R.id.pverdef1);
                        Toast.makeText(this, "foto1", Toast.LENGTH_SHORT).show();
                  }else if (nomefoto2.contains("IMG2")){
                         nomefoto2="nofoto";
                           cambiastatofoto(R.id.prossof2 ,R.id.pverdef2);
                         Toast.makeText(this, "foto2", Toast.LENGTH_SHORT).show();
                       
                  }else {

                  }                              
                 } else if (resultCode == RESULT_CANCELED) {
                        // User cancelled the image capture
                         if (nomefoto1.contains("IMG1")){
                                 nomefoto1="nofoto";
                             layoutfoto2.setVisibility(LinearLayout.INVISIBLE);
                  }else if (nomefoto2.contains("IMG2")){
                          nomefoto2="nofoto";  
                  }else {

                  }                              
                 Toast.makeText(this, msg1.toString(), Toast.LENGTH_LONG).show();                        
                 } else {                        
                         // Image capture failed, advise user
                         Toast.makeText(this, msg2.toString(), Toast.LENGTH_LONG).show();
                 }                     
        }                
                         
    }                    
                         
« Ultima modifica: 18 Febbraio 2012, 10:49:24 CET da fieraf »

Offline fieraf

  • Utente junior
  • **
  • Post: 88
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 2
  • Sistema operativo:
    windows 7
Re:activity ricreata una o do volte dopo un onactivityresult
« Risposta #1 il: 18 Febbraio 2012, 10:48:13 CET »
0
ciao ragazzi .
ho risolto creando un layout per la activity che chiama la camera in eclipse con risoluzione 1200*800 ,large,xhdpi che sono le specifche del galaxy note

grazie,
alla prossima