将字符串从AsyncTask传递到另一个活动
问题描述:
我试图使用HTTPClient获取使用AsyncTask并将代码传回给主Activity的网站的html代码。将字符串从AsyncTask传递到另一个活动
我用这个代码,以(试图)做:
这是我AsyncTaskGet,因为我试过很多徒劳的尝试,我抹去我的主要活动的所有代码,除了这部分。
new AsyncTaskGet().execute();
所以,基本上,我想要做的是将结果返回到我的主要活动作为字符串显示在TextView中。 现在我想我的应用程序很简单,所以我可以理解使用AsyncTasks的基础知识,我没有检查互联网的视觉效果或类似的东西,我在清单上添加了使用互联网的权限(显然是
(请有点放纵,因为这是我的第一个应用程序之一)
最后一件事,请原谅我的英语不好,我是因为你一定见过可惜不是以英语为母语。
在前进,非常感谢!
真诚:)
答
您已经将结果作为String
传递给。如果您的AsyncTask
是您的Activity
的内部类,那么您可以将结果设置为您的Activity
中的字段变量。否则,您可以拨打Activity
中的函数onPostExecute()
来完成您想要的数据。
而且,你的英语不好是真的不差:)
答
最简单的事情是通过构造函数通过调用活动,您的AsyncTask,并创建将结果作为参数的方法活动本身。
private Activity mActivity;
public AsyncTaskGet(Activity activity) {
mActivity = activity;
}
protected void onPostExecute(String result) {
mActivity.takeItBack(result);
}
有一些限制:当前的代码只需用的AsyncTask和活动之间的1对1的关系的作品,是指私有成员变量的类型必须是从中调用它的活动。如果你不希望你需要实现一个接口:
// interface
public interface AsyncTaskCallback {
void takeItBack(String result);
}
// activity
public MyActivity implements AsyncTaskCallback {
@Override
public void takeItBack(String result) {
// do something
}
}
// AsyncTask
public class AsyncTaskGet extends AsyncTask<String, String, String> {
private AsyncTaskCallback mCallback;
public AsyncTaskGet(AsyncTaskCallback callback) {
mCallback= callback;
}
protected void onPostExecute(String result) {
mCallback.takeItBack(result);
}
}
Poor English?什么可怜的英语? –