我有一个扩展Asynctask的类。在这个类中,我有一个返回哈希映射的方法。如何在扩展Activity的不同类中获取此Hashmap。
有人给我一些参考代码吗?
答案 0 :(得分:4)
您可以在Activity中创建一个侦听器,然后将此侦听器传递给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放入Activity中,然后在onPostExecute中设置hashmap。