2011-09-25 15 views
5

mi piacerebbe ascoltare una lunga pressione del tasto nella mia applicazione Android, e da Android 2.0 v'è un metodoAndroid - metodo di sostituzione a partire dalla versione API superiore e inferiore di supporto API versione

public boolean onKeyLongPress(int keyCode, KeyEvent event) 

di ignorare. Ma cosa posso fare se la mia app deve assolutamente supportare l'API 4 (Android 1.6)? So che posso chiamare i metodi API con la riflessione, ma sono abbastanza sicuro di non poter ignorare la riflessione.

risposta

0

Il metodo più semplice è quello di scrivere due implementazioni di classe di visualizzazione personalizzata, dicono:

MyCustomViewBasic extends View { 
    private MySharedImplementation impl; 
} 

MyCustomViewKeyLongPress extends View { 
    private MySharedImplementation impl; 

    @Override 
    public boolean onKeyLongPress(int keyCode, KeyEvent event) { 
     // Do something exciting 
    } 
} 

Questi due implementazioni possono condividere il maggior numero di dettagli di implementazione possibili, garantendo nel contempo che tutto ciò non è disponibile nelle API di livello 4 non è nell'implementazione condivisa.

Quindi disporre di due layout xml, uno per livello API 4 e uno per livello API 4 e superiori. Usa MyCustomViewBasic nel layout per livello API 4 e MyCustomViewKeyLongPress in quello per livello API 4 e successivo

+0

sfortunatamente mi piacerebbe farlo per l'attività – Axarydax

5

Perché non rimuovi l'annotazione @Override sopra il metodo? Android 1.6 lo ignorerebbe, 2.0 lo interpreterebbe comunque correttamente.

+0

ignorando la funzione non è la parte difficile ... questo tipo di evento richiede l'uso di super.onKeyLongPress() al suo interno per poter gestire correttamente la catena di eventi. Android <2.0 soffoca sul super.onKeyLongPress() perché non esiste e non c'è modo di chiamare super.whatever() con il riflesso in Java. Sono bloccato cercando di capire un modo per far funzionare questo stesso genere di cose per l'API 3 e anch'io sono in perdita. –

Problemi correlati