Sto lavorando a un'applicazione Android, che recupera l'immagine da Internet e mostra nell'interfaccia utente. Sto usando RecyclerView per mostrare l'immagine. Sto pensando di scaricare l'immagine usando un thread separato. e aggiorna RecyclerView tramite il gestore. Non so che scendessimo questo concetto è corretto o meno, (lo so AsyncTask, ma per l'apprendimento scopo Sto cercando di implementare Handler.) Così ho codificato per la stessa, come di seguitoUtilizzare il gestore per inserire nella discussione dell'interfaccia utente
private void loadNewsThumbnailImage(ArrayList<DataItem> dataList) {
for (DataItem item : DataList) { //DataItem is the model class
loadThumbnailFromInternet(item);
}
}
private void loadThumbnailFromInternet(final DataItem dataItem) {
Thread imageDowloaderThread = new Thread(new Runnable() {
@Override
public void run() {
Bitmap bitmap = null;
try {
bitmap = getDataItemBitmap(dataItem.getmImageUrl());
dataItem.setmThumbnail(bitmap);
new Handler().post(new Runnable() { // Tried new Handler(Looper.myLopper()) also
@Override
public void run() {
mAdapter.notifyDataSetChanged();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
});
imageDowloaderThread.start();
}
ho eseguito questo codice ma sto ricevendo errore, e l'applicazione è terminata, non so perché questo sta accadendo. per favore qualcuno mi aiuti a risolverlo. e spiega qual è il problema per il codice corrente.
(Si prega di non suggerire di utilizzare AsyncTask (ho provato e funziona benissimo))
UPDATE
Errore durante: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
si prega di ricaricare la qn – droidev