我从多个页面收到帖子,然后在我的应用中显示。我有一个MAinActivity,我在那里进行API调用:
GraphRequest request = new GraphRequest(
AccessToken.getCurrentAccessToken(), "/", null, HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
Intent feed = new Intent(MainActivity.this, Feed.class);
feed.putExtra("response", response.getJSONObject().toString());
startActivity(feed);
}
}
);
Bundle parameters = new Bundle();
parameters.putString("ids", sources);
parameters.putString("fields", "posts{id,message,picture,object_id,properties,source,created_time},picture.width(150)");
parameters.putString("locale", "es_ES");
request.setParameters(parameters);
request.executeAsync();
sources
是一个连接所有ID的字符串(" id1,id2,id3 ...")
当我有数据时,我将其传递给我的Feed
活动,我处理它:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_feed);
ListView lv = findViewById(R.id.list_feed);
PostAdapter adaptador;
Bundle inBundle = getIntent().getExtras();
ArrayList<Post> arrayPosts = new ArrayList<>();
String imgProfile;
String JSONstring = inBundle.getString("response");
try {
JSONObject JSONfeed = new JSONObject(JSONstring);
for (int index = 0; index < JSONfeed.names().length(); index++) {
JSONObject pagina = JSONfeed.getJSONObject(JSONfeed.names().getString(index));
JSONObject postsObject = pagina.getJSONObject("posts");
JSONObject pictureObject = pagina.getJSONObject("picture");
//{handle data and fields}
}
adaptador = new PostAdapter(this, arrayPosts);
lv.setAdapter(adaptador);
} catch (JSONException e) {
e.printStackTrace();
}
事情是这样工作正常,但是当我有大量数据(现在我有25个来源)时,应用程序崩溃没有任何错误或在调用的时刻记录。我非常确定崩溃是针对大数据的。当我删除某些来源或将limit(10)
置于我的通话中时,它可以正常工作。
我需要知道如何对此进行分页,我不知道我是否以奇怪的方式完成了我的代码,但我发现的示例与我的不同。