繁体   English   中英

当调用Request.callback onCompleted()方法时,如何将Facebook返回的数据传递给Android中的片段?

[英]How can I pass data returned from Facebook when Request.callback onCompleted() method is called, to my fragment in Android?

我目前正在尝试将Facebook集成到我的Android应用程序中。 我一直没有让应用程序连接和认证的问题。 但是一旦执行onCompleted(Response response)回调方法,我在理解如何处理数据时会遇到一些麻烦。 以下方法有效:

private void onSessionStateChange(Session session, SessionState state,
        Exception exception) {

    if (state.isOpened()) {

        Log.i(TAG, "Logged in...");

        new Request(session, "/me", null, HttpMethod.GET,
                new Request.Callback() {

                    @Override
                    public void onCompleted(Response response) {

                        GraphObject graphObject = response.getGraphObject();
                        JSONObject data = graphObject.getInnerJSONObject();

                        Log.i(TAG, "My DETAILS: ");

                        try {
                            Log.i(TAG, "ID: " + data.getLong("id"));
                            Log.i(TAG, "Name: " + data.getString("name"));
                            Log.i(TAG, "Email: " + data.getString("email"));
                            Log.i(TAG,
                                    "Gender: " + data.getString("gender"));

                        } catch (JSONException e) {

                            e.printStackTrace();
                        }

                    }
                }).executeAsync();

    } else if (state.isClosed()) {
        Log.i(TAG, "Logged out...");
    }
}

当我运行应用程序时,Facebook进行身份验证,将检索数据并将其成功输出到Logcat窗口。 但是,我无所适从,无法理解如何将JSONObject传递回片段进行进一步处理。
我在网上看到的大多数示例都只是将JSONObject内容设置为片段中的视图,或者甚至没有多大帮助,只需/* Handle response here *//* Handle response here */或类似内容即可。 我还有另一种类似的方法,我想获取个人资料图片网址并下载图片,但无法将网址返回到片段中进行进一步处理。 我是否应该像开发一个以JSONObject作为参数的runnable类,并从onCompleted()方法启动一个单独的线程来按我希望的方式处理它那样做?

我当前的目标是获取使用我的应用程序的用户朋友列表,并保存他们的个人资料图片以在应用程序中使用。 我会以错误的方式处理吗?

因此,如果我对您的理解正确,那么您将获取所有数据,可以解析JSON,但无法将数据传递给其他片段? 您为什么不写入可从任何地方访问的文件?

为什么要“下载”图像,这会增加处理时间。 只需使用以下URL: https://graph.facebook.com/"+uid.trim()+"/picture?type=normal : https://graph.facebook.com/"+uid.trim()+"/picture?type=normal "+uid.trim()+"/picture https://graph.facebook.com/"+uid.trim()+"/picture?type=normal type https://graph.facebook.com/"+uid.trim()+"/picture?type=normal normal uid是您的用户ID。 与Universal Image Loader结合使用时,可以在图像视图中异步加载图像。 您节省了时间-避免了手动缓存文件或将其保存在SD上的麻烦。

但是兄弟,这里的问题是Facebook将于2015年4月停止对您正在使用的API的支持。开始移植您的应用程序以使用最新的facebook API; 但是,这对于获取用户信息不是很有用。 欢呼并继续编码:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM