Autore Topic: Avviare activity da fragment  (Letto 648 volte)

Offline Arch1Mat

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 8.1
Avviare activity da fragment
« il: 28 Dicembre 2013, 10:17:24 CET »
0
Ciao a tutti, premetto che sto iniziando a programmare con i fragment da poco e che prima di chiedere qui ho fatto una ricerca piuttosto approfondita in internet (e sul forum), ma tutte le soluzioni che per altri funzionano a me non funzionano... Eppure sembra molto semplice il mio problema... Ho una fragmentactivity che contiene tre fragment. In uno di questi ho un edittext e un button. Cliccando sul bottone si deve avviare una nuova activity che riceverà il pramentro contenuto nell'edittext. Quando vado a provare il codice, al momento del click, l'app va in crash e nel logcat non sembrano esserci errori. Il codice incriminato è questo (e varianti trovate sul web):
Codice: [Seleziona]
submit.setOnClickListener(new View.OnClickListener() {       

            @Override
            public void onClick (View v) { //OnClick                   
                    Bundle bundle = new Bundle();
                    Log.d("4","ok");
                    bundle.putString("dati", camporicerca.getText().toString());
                    Log.d("5","ok");
                    Intent in = new Intent(getActivity(), Risultato.class);
                    Log.d("6","ok");   
                    in.putExtras(bundle);
                    Log.d("7","ok");   
                    startActivity(in);
                    Log.d("8","ok");
                }

            });

Il logcat (è completo fino al crash, non ci sono altre righe dopo) è questo:
Codice: [Seleziona]
12-27 09:31:34.991: D/4(1054): ok
12-27 09:31:34.991: D/5(1054): ok
12-27 09:31:35.001: D/6(1054): ok
12-27 09:31:35.001: D/7(1054): ok
12-27 09:31:35.001: I/ActivityManager(381): START u0 {cmp=com.example.android.effectivenavigation/.Risultato (has extras)} from pid 1054
12-27 09:31:35.021: E/SoundPool(381): error loading /system/media/audio/ui/Effect_Tick.ogg
12-27 09:31:35.021: W/AudioService(381): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
12-27 09:31:35.021: E/SoundPool(381): error loading /system/media/audio/ui/Effect_Tick.ogg
12-27 09:31:35.031: W/AudioService(381): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
12-27 09:31:35.031: E/SoundPool(381): error loading /system/media/audio/ui/Effect_Tick.ogg
12-27 09:31:35.031: W/AudioService(381): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
12-27 09:31:35.041: E/SoundPool(381): error loading /system/media/audio/ui/Effect_Tick.ogg
12-27 09:31:35.051: W/AudioService(381): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
12-27 09:31:35.051: E/SoundPool(381): error loading /system/media/audio/ui/Effect_Tick.ogg
12-27 09:31:35.051: W/AudioService(381): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
12-27 09:31:35.051: E/SoundPool(381): error loading /system/media/audio/ui/KeypressStandard.ogg
12-27 09:31:35.051: W/AudioService(381): Soundpool could not load file: /system/media/audio/ui/KeypressStandard.ogg
12-27 09:31:35.061: E/SoundPool(381): error loading /system/media/audio/ui/KeypressSpacebar.ogg
12-27 09:31:35.061: W/AudioService(381): Soundpool could not load file: /system/media/audio/ui/KeypressSpacebar.ogg
12-27 09:31:35.061: E/SoundPool(381): error loading /system/media/audio/ui/KeypressDelete.ogg
12-27 09:31:35.061: W/AudioService(381): Soundpool could not load file: /system/media/audio/ui/KeypressDelete.ogg
12-27 09:31:35.071: E/SoundPool(381): error loading /system/media/audio/ui/KeypressReturn.ogg
12-27 09:31:35.071: W/AudioService(381): Soundpool could not load file: /system/media/audio/ui/KeypressReturn.ogg
12-27 09:31:35.071: E/SoundPool(381): error loading /system/media/audio/ui/KeypressInvalid.ogg
12-27 09:31:35.071: W/AudioService(381): Soundpool could not load file: /system/media/audio/ui/KeypressInvalid.ogg
12-27 09:31:35.071: W/AudioService(381): onLoadSoundEffects(), Error -1 while loading samples


Offline knives

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
Re:Avviare activity da fragment
« Risposta #1 il: 28 Dicembre 2013, 16:18:58 CET »
0
da quel log sembra che abbia problemi con i file di media, esistono e vengono caricati nella soluzione?

Offline Arch1Mat

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 8.1
Re:Avviare activity da fragment
« Risposta #2 il: 28 Dicembre 2013, 16:31:29 CET »
0
Oggi ho cambiato virtual device, il problema resta, tutti quegli errori no. Il log di un attimo fa è questo (da quando lo mando in esecuzione fino a quando crasha):

Codice: [Seleziona]
12-28 10:27:58.450: W/ActivityThread(1549): Application com.example.android.effectivenavigation is waiting for the debugger on port 8100...
12-28 10:27:58.460: I/System.out(1549): Sending WAIT chunk
12-28 10:27:58.470: I/dalvikvm(1549): Debugger is active
12-28 10:27:58.660: I/System.out(1549): Debugger has connected
12-28 10:27:58.660: I/System.out(1549): waiting for debugger to settle...
12-28 10:27:58.860: I/System.out(1549): waiting for debugger to settle...
12-28 10:27:59.070: I/System.out(1549): waiting for debugger to settle...
12-28 10:27:59.320: I/System.out(1549): waiting for debugger to settle...
12-28 10:27:59.550: I/System.out(1549): waiting for debugger to settle...
12-28 10:27:59.810: I/System.out(1549): waiting for debugger to settle...
12-28 10:28:00.000: I/System.out(1549): waiting for debugger to settle...
12-28 10:28:00.200: I/System.out(1549): waiting for debugger to settle...
12-28 10:28:00.410: I/System.out(1549): debugger has settled (1393)
12-28 10:28:00.970: D/dalvikvm(1549): GC_FOR_ALLOC freed 89K, 6% free 2955K/3128K, paused 25ms, total 35ms
12-28 10:28:00.980: I/dalvikvm-heap(1549): Grow heap (frag case) to 3.572MB for 635812-byte allocation
12-28 10:28:01.010: D/dalvikvm(1549): GC_FOR_ALLOC freed 2K, 5% free 3573K/3752K, paused 24ms, total 24ms
12-28 10:28:01.480: D/0(1549): ok
12-28 10:28:01.640: D/1(1549): ok
12-28 10:28:01.640: D/2(1549): ok
12-28 10:28:01.640: D/3(1549): ok
12-28 10:28:01.810: D/(1549): HostConnection::get() New Host Connection established 0xb84d8058, tid 1549
12-28 10:28:01.880: W/EGL_emulation(1549): eglSurfaceAttrib not implemented
12-28 10:28:01.880: D/OpenGLRenderer(1549): Enabling debug mode 0
12-28 10:28:04.990: D/4(1549): ok
12-28 10:28:04.990: D/5(1549): ok
12-28 10:28:04.990: D/6(1549): ok
12-28 10:28:05.000: D/7(1549): ok

EDIT: Forse ho trovato il problema. getActivity() ritorna l'activity che contiene i fragment. Da quanto ho scoperto, il codice che ho postato funziona se quest'ultima activity estende Activity, la mia invece estende FragmentActivity. Potrebbe essere? In tal caso, come potrei risolvere?
Praticamente se la MainActvity faccio che estende Activity mi da errore questa linea:
Codice: [Seleziona]
this.mPagerAdapter = new PagerAdapter(super.getSupportFragmentManager(),fragments);anche se la modifico così:
Codice: [Seleziona]
this.mPagerAdapter = new PagerAdapter(super.getFragmentManager(),fragments);
EDIT 2: Risolto così:
Codice: [Seleziona]
public class Risultato extends FragmentActivity
« Ultima modifica: 28 Dicembre 2013, 20:34:49 CET da Arch1Mat, Reason: Non mi sembra giusto fare tripli post »