2012-02-24 104 views
2

我有一個類擴展了Asynctask。在這個類中,我有一個返回哈希映射的方法。我怎樣才能在擴展Activity的不同類中得到這個HashMap。異步任務數據獲取器

任何人都給我一些參考碼?

+3

張貼您的代碼請 – Natali 2012-02-24 11:34:58

回答

4

您可以在您的活動中創建一個偵聽器,然後將此偵聽器傳遞到您的AsyncTask中。一旦AsyncTask完成,您可以調用偵聽器來設置Hashmap。因此,在您的AsyncTask創建您的聽衆:

public static interface MyListener { 
     void setHashmap(Hashmap myHashmap); 
    } 

而且,有一個函數來設置你的聽衆:

public void setListener(MyListener listener) { 
     this.listener = listener; 
    } 

然後在onPostExecute調用函數你的聽衆

listener.setHashmap(myHashmap); 

在你活動實施此聽衆:

public class MyActivity extends Activity implements MyListener { ... 


    public void setHashmap(Hashmap hashmap) { 

     // do stuff here 
     this.hash = hashmap 
    } 

然後最後設置你的聽衆,開始你的AsyncTask:

AsyncTask task = new MyAsyncTask(); 
    task.setListener(this); 
    task.execute(); 

當然,你也可以只把你的AsyncTask您的活動,那麼你可以設置onPostExecute HashMap中。

+0

+1一個很好的答案。 – 2012-03-22 04:59:13