2013-05-31 33 views
2

首先,我是Android開發的小菜鳥。所以請好好解釋一下所犯的錯誤。在Asynctask之後替換一個圖像

在我的應用程序中,我有一個片段來顯示一些圖像。另一個實現Application的類實現AsyncTask從Web獲取XML文件,然後獲取片段中圖像的圖像。由於需要時間,因此我將imageviews設置爲顯示加載圖像。現在,當AsyncTask完成時,我想用OnPostExecute()中的圖像替換這些圖像。

[我將使用循環J的SmartImageView或Android UniversalImageLoader庫,以便下載的圖片是不是我現在所面臨的問題]我不知道如何從這個應用類別或從另一個單獨指該分段變量

onPostExecute()中的類。請幫我在這裏。

編輯:正在使用LocalBroadcastReceiver的方式?這是唯一的方法嗎?我不能直接訪問?

回答

1

爲您的AsyncTask添加一個構造函數並將它傳遞給您的imageview。

private class MyTask extends AsyncTask<Void, Void, Void> { 
    ImageView image; 

    private MyTask(ImageView image) { 
     this.image = image; 
    } 

,並調用它

MyTask task = new MyTask(imageView); 
+0

感謝您的答覆。但正如我所提到的,我的AsyncTask在Application類中。並且imageview在一個片段中。我不知道什麼時候asynctask完成,從片段。所以我不能從片段中調用它! –

+0

如果你可以得到你的活動,你可以使用findFragmentByTag並以這種方式找到你的片段。你可以創建一個onMyTaskFinished接口並回調到MyTask的onPostExecute()中的onMyTaskFinished.onFinished()。 – r2DoesInc

+0

我如何才能在我的應用程序類上獲得我的活動?我嘗試傳遞「this」作爲參數。但然後我嘗試調用mainActivity.onTaskFinished()函數,它不工作。我在這裏做錯了什麼? –