0

我正在使用AQuery 演示应用程序中的以下代码,并且 xml 始终为空

如何获取与我从谷歌账户列表中选择的账户相关的信息?

public void auth_specific_account(){


        String url = "https://www.google.com/reader/atom/user/-/state/com.google/reading-list?n=8";

        AjaxCallback<XmlDom> cb = new AjaxCallback<XmlDom>();

        cb.url(url).type(XmlDom.class).weakHandler(this, "readerCb");  
        cb.auth(this, AQuery.AUTH_READER, AQuery.ACTIVE_ACCOUNT);

        aq.progress(R.id.progress).ajax(cb);

    }

public void readerCb(String url, XmlDom xml, AjaxStatus status) {

        if(xml != null){

            List<XmlDom> entries = xml.tags("entry");           
            List<String> titles = new ArrayList<String>();

            for(XmlDom entry: entries){
                titles.add(entry.text("title"));
            }

            showTextResult(titles);         
        }

        AQUtility.debug("status:" + status);

        showResult(xml, status);
    }
4

1 回答 1

0

当不需要弱处理程序时,您可以使用不同的方法,通过将扩展 AjaxCallback 的对象传递给 aq.ajax(),该对象获取有关应使用请求的项目的信息。

    private class AjaxCallbackAddingMarker extends AjaxCallback<Bitmap> {
        private final Item item;

        AjaxCallbackAddingMarker(Item item) {
            this.item = item;
        }

        @Override
        public synchronized void callback(String url, Bitmap object, AjaxStatus status) {
            // do something with item and downloaded Bitmap
        }
    };

如果你想使用weakHandler,那么这是我的解决方案:

private void loadImage(final ImageView image, String url) {

    Bitmap bmp = aq.getCachedImage(url);

    if (bmp!= null) {
        image.setImageBitmap(bmp);
        return;
    }

    Object handler = new Object() {
        @SuppressWarnings("unused")
        public void callback(String url, Bitmap bmp, AjaxStatus status) {
            if (bmp != null) {
                image.setImageBitmap(bmp);
            }
        }
    };

    AjaxCallback<Bitmap> bmpCallback = new AjaxCallback<Bitmap>();
    bmpCallback.type(Bitmap.class).url(url).header("User-Agent", appPrefs.getUserAgent()).policy(AQuery.CACHE_PERSISTENT)
            .expire(GlobalVars.MARKERS_CACHE_EXPIRE).fileCache(true).weakHandler(handler, "callback");
    aq.ajax(bmpCallback);
}
于 2013-10-21T14:38:00.640 回答