u011027701 2016-04-25 15:38 采纳率: 33.3%
浏览 1533
已采纳

AsynTask中怎么返回数据填充到ListView中

我调用新浪微博的SDK,其中调用官方的APT方法--userTimelineIds获取微博ID,官方方法如下:
/**
* 获取用户发布的微博的ID
*
* @param uid 需要查询的用户ID
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0
* @param count 单页返回的记录条数,默认为50
* @param page 返回结果的页码,默认为1
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false
* @param featureType 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0
*

{@link #FEATURE_ALL}
* {@link #FEATURE_ORIGINAL}
* {@link #FEATURE_PICTURE}
* {@link #FEATURE_VIDEO}
* {@link #FEATURE_MUSICE}
* @param listener 异步请求回调接口
*/
public void userTimelineIds(long uid, long since_id, long max_id, int count, int page, boolean base_app,
int featureType, RequestListener listener) {
WeiboParameters params = buildTimeLineWithApp(since_id, max_id, count, page, base_app, featureType);
params.put("uid", uid);
requestAsync(SERVER_URL_PRIX + "/user_timeline/ids.json", params, HTTPMETHOD_GET, listener);
}
    可以看出是用了AsynTask实现的异步回调。但是具体的requestAsync被新浪封装,无法查看和修改。

    在我自己的Activity中调用如下:
    /**
     * 通过登录的用户id获取其发过的所有微博id
     */
    mStatuseAPI.userTimelineIds(uid, 0L, 0L, 50, 1, false,
            StatusesAPI.FEATURE_ALL, 
            new RequestListener() {   //异步回调就是发起请求后,不等待响应就先去处理自己的响应

                @Override
                public void onWeiboException(WeiboException error) {
                    // TODO Auto-generated method stub
                    //出错就打印出错信息
                    error.printStackTrace();
                }

                @Override
                public void onComplete(String result) {
                    // TODO Auto-generated method stub
                    Log.i(TAG, result);

                    //当括号内参数为(null)或者("")时,返回true,此方法既可以判断字符串也可以判断对象
                    if(!TextUtils.isEmpty(result)){
                        getWbList(result);
                    }else{
                        Log.i(TAG, "获取不到微博ID或者此用户没有发过微博");
                    }

                }
            });

这里onComplete方法返回的result是在异步回调线程中的,请问怎么将数据拿到Activity中。这里由于requestAsync无法查看和修改。就不能重载AsynTask里的onPostExcate()方法传回结果。
请问该怎么在主线程中拿到数据?

  • 写回答

3条回答 默认 最新

  • devmiao 2016-04-25 15:58
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献