Autore Topic: Come disabilitare il bottone indietro in una ListActivity  (Letto 636 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Come disabilitare il bottone indietro in una ListActivity
« il: 06 Gennaio 2011, 12:39:14 CET »
0
Ciao
vorrei disabilitare il bottone indietro (bottone presente sui cellulari android)
Ho usato il seguente codice:

Codice (Java): [Seleziona]
@Override
public void onBackPressed() {
}

Questo codice funziona nella classi che estendono Activity
Questo codice NON funziona nella classi che estendono ListActivity, quindi in queste classi quando premo indietro il bottone continua a funzionare

Ho messo una stampa nel suddetto metodo e vedo che la stampa viene visualizzata nella console di eclipse quando premo indietro in una classe che estende Activity, mentre la stampa non compare quando premo indietro e mi trovo in una classe che estende ListActivity

sapete dirmi come mai?

thanks

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Come disabilitare il bottone indietro in una ListActivity
« Risposta #1 il: 06 Gennaio 2011, 15:12:08 CET »
+1
Questo funziona su SDK >= 5 (quindi non va su 1.5 e 1.6):

Codice (Java): [Seleziona]
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK
                && event.getRepeatCount() == 0) {
            event.startTracking();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
                && !event.isCanceled()) {
            // *** DO ACTION HERE ***
            return true;
        }
        return super.onKeyUp(keyCode, event);
    }

Se il problema cmq è la ListActivity perché non la converti in una Activity normale gestendo manualmente la ListView?
Codice (Java): [Seleziona]
private ListView listView;
//[...]
listView = (ListView)findViewById(R.id.my_listview);
listView.setAdapter(myCursorAdapter);
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !