Autore Topic: startActivityForResult nel metodo onClick non funziona correttamente...  (Letto 825 volte)

Offline Qwertid

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
Ciao a tutti!
Ho un problema che non riesco proprio a risolvere per quanto mi stia scervellando e per quante ne stia provando. La situazione è molto semplice: ho impostato un listener su un table layout perchè voglio rendere lo schermo totalmente cliccabile. Una volta che l'utente clicca lo schermo deve partire un'activity che lancia funzioni di riconoscimento vocale.

Posto uno spezzone del codice

Codice (Java): [Seleziona]
               

                .......................................................
                //Impostazione del listener per captare la pressione su un punto qualsiasi del display
                TableLayout tableLayout = (TableLayout) findViewById(R.id.tlRootPosizFlotta);
                tableLayout.setOnClickListener(new OnClickListener() {
                       
                        @Override
                        public void onClick(View v) {
                               
                                Intent intent = new Intent(v.getContext() , ASRActivity.class);
                                intent.putExtra(Costants.EXTRA_GRAMMAR, "MyGram");
                                intent.putExtra(Costants.EXTRA_PROMPT, "Pronuncia comando");
                               startActivityForResult(intent, Costants.COMMAND_REQUEST_CODE);
                               
                        }
                });

Il problema che riscontro sta nel fatto che ASRActivity non si visualizza correttamente. Ho pensato che il problema potesse essere il contesto che passo all'intent e per questo ho provato anche getBaseContext(), getApplicationContext() e anche nomeActivity.this ma il risultato è sempre lo stesso.

Per isolare il problema ho copiato le stesse 4 righe che definiscono l'intent e startano l'activity al di fuori del listener (così facendo parte automaticamente), quindi alla stessa altezza del puntini sospensivi che ho postato nel codice: ebbene, così facendo, tutto funziona regolarmente.

A questo punto, cosa devo cambiare affinchè funzioni all'interno di onClick?

Grazie  :-)


P.S: sono da escludere problemi in ASRActivity perchè la utilizzo in tante altre parti del mio progetto (sebbene non attraverso una view come in questo caso) e funge  :-P

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:startActivityForResult nel metodo onClick non funziona correttamente...
« Risposta #1 il: 09 Gennaio 2012, 16:59:19 CET »
0
Il problema che riscontro sta nel fatto che ASRActivity non si visualizza correttamente.

Cosa vuol dire che non si visualizza correttamente?

Offline Qwertid

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
Re:startActivityForResult nel metodo onClick non funziona correttamente...
« Risposta #2 il: 09 Gennaio 2012, 17:04:12 CET »
0
Come prima cosa l'Activity ASRActivity mostra una vignetta durante la quale il TTS porge una domanda all'utente. Appena il TTS finisce di parlare, visualizza un rettangolo con la domanda scritta in un box. L'utente risponde vocalmente e quando ha terminato la risposta, preme appunto questo box e l'activity termina restituendo la stringa pronunciata.

L'inconveniente che riscontro è che resta piantata sulla vignetta iniziale e non cambia la visualizzazione sul rettangolo col box... Perciò ho pensato possa essere un problema di contesto...
« Ultima modifica: 09 Gennaio 2012, 17:07:24 CET da Qwertid »