Ho due caricatori costruite su misura ereditato dal AsyncTaskLoader
che vorrei utilizzare nella mia attività. Ognuno di loro restituisce risultati di diverso tipo. Per utilizzare la mia attività per un callback devo implementare due interfacce:più caricatori nella stessa attività
implements LoaderCallbacks<GetSyncListDataResult>, LoaderCallbacks<ErrorResult>
Tuttavia, cercando di attuare metodi richiesti nella stessa classe io alla fine con errore metodo di duplicazione e cancellazione (???) di errore:
// Methods for the first loader
public Loader<GetSyncListDataResult> onCreateLoader(int ID, Bundle bundle) ...
public void onLoaderReset(Loader<GetSyncListDataResult> loader) ...
public void onLoadFinished(Loader<GetSyncListDataResult> loader, GetSyncListDataResult result) ...
// Methods for the second loader
public Loader<ErrorResult> onCreateLoader(int ID, Bundle bundle) ...
public void onLoaderReset(Loader<ErrorResult> loader) ...
public void onLoadFinished(Loader<ErrorResult> loader, ErrorResult result) ...
Ovviamente, i metodi si scontrano e ho bisogno di un modo semplice come risolvere questo. Quale sarebbe il modo corretto di risolvere questo?
non implementano i caricatori. È possibile implementare solo un singolo caricatore. Invece, dovresti dichiarare le tue LoaderCallback come variabili .. Es. LoaderCallbacks syncListCallbacks = new LoaderCallbacks () {...} metodi qui; –
dymmeh
OK, quindi sarebbe meglio avere un'istanza di classe anonima interna nella variabile? – Dusan
Sì. . Poi avviare il loader come getLoaderManager() initLoader (loaderId, Fascio, syncListCallbacks); – dymmeh