2013-01-16 111 views
0

我试图使用HTTPClient获取使用AsyncTask并将代码传回给主Activity的网站的html代码。将字符串从AsyncTask传递到另一个活动

我用这个代码,以(试图)做:

这是我AsyncTaskGet,因为我试过很多徒劳的尝试,我抹去我的主要活动的所有代码,除了这部分。

new AsyncTaskGet().execute(); 

所以,基本上,我想要做的是将结果返回到我的主要活动作为字符串显示在TextView中。 现在我想我的应用程序很简单,所以我可以理解使用AsyncTasks的基础知识,我没有检查互联网的视觉效果或类似的东西,我在清单上添加了使用互联网的权限(显然是

(请有点放纵,因为这是我的第一个应用程序之一)

最后一件事,请原谅我的英语不好,我是因为你一定见过可惜不是以英语为母语。

在前进,非常感谢!

真诚:)

+1

Poor English?什么可怜的英语? –

回答

2

您已经将结果作为String传递给。如果您的AsyncTask是您的Activity的内部类,那么您可以将结果设置为您的Activity中的字段变量。否则,您可以拨打Activity中的函数onPostExecute()来完成您想要的数据。

而且,你的英语不好是真的不差:)

4

最简单的事情是通过构造函数通过调用活动,您的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);   
    } 
} 
相关问题