Facebook API를 사용하고 있으며 데이터를 표시하는 데 어려움을 겪고 있습니다. 내 코드는 조각을 사용하고 루트로 ListView
을 가진 레이아웃을 부 풀린다. 그 ListView
수 있도록 다른 PullToRefreshListView
래핑됩니다. 또한 Mark Murphy의 Endless Adapter을 사용할 수 있도록 어댑터를 포장하고 있습니다. 조각을 만들기 전에 Facebook 데이터를 모두로드하면 모든 것이 작동합니다. 하지만 비어있는 조각을 만들고 싶습니다. ListView
그리고 Facebook 데이터를 비동기 적으로 가져 오면 채워 넣기를 원합니다.Facebook onComplete에서 setAdapter를 호출하는 중
나는 페이스 북 Request
에 onComplete(Response response)
콜백 메소드를 사용하고 있지만, 내가 어떤 이유로 onCreateView()
방법의 setAdapter(adapter)
외부에서 사용할 수없는 것으로 보인다. 나는 정말 간단한 것을 놓치고있는 것처럼 느껴진다. 이 코드는 이전에 실행
refreshFeedList = (PullToRefreshListView) view.findViewById(R.id.feedList);
feedList = refreshFeedList.getRefreshableView();
feedList.setDividerHeight(0);
때문에
JSONArray newsFeed;
View view;
ListView feedList;
PullToRefreshListView refreshFeedList;
Request initialFeedRequest = new Request(session, "me/home", null, HttpMethod.GET, new Request.Callback() {
@Override
public void onCompleted(Response response) {
Log.i("NewsFeed", "initial load onComplete");
Log.i("NewsFeed",response.toString());
responseObject = response.getGraphObject().getInnerJSONObject();
try {
newsFeed = responseObject.getJSONArray("data");
} catch (JSONException e) {
e.printStackTrace();
}
feedAdapter = new FeedAdapter(getActivity(), Space.newsFeed);
endlessAdapter = new EndlessFeed(feedAdapter);
feedList.setAdapter(endlessAdapter);
refreshFeedList.setOnRefreshListener(refreshListener);
nextPageRequest = response.getRequestForPagedResults(PagingDirection.NEXT);
String test = feedAdapter.getItem(0).toString();
Log.i("NewsFeed", "First Item: " + test);
}
});
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
view = inflater.inflate(R.layout.news_feed, container, false);
if(feedAdapter==null){
Log.i("NewsFeed", "executing Request");
initialFeedRequest.executeAsync();
}
else{
feedAdapter = new FeedAdapter(getActivity(), Space.newsFeed);
endlessAdapter = new EndlessFeed(feedAdapter);
feedList.setAdapter(endlessAdapter);
refreshFeedList.setOnRefreshListener(refreshListener);
}
refreshFeedList = (PullToRefreshListView) view.findViewById(R.id.feedList);
feedList = refreshFeedList.getRefreshableView();
feedList.setDividerHeight(0);
}
당신의 조각 코드입니까? onCompleted()에서 setAdapter를 호출 할 때 관찰 된 사항은 무엇입니까? 그냥 빈 목록? – sandrstar
onCompleted()에서 setAdapter를 호출하면 빈 목록이 표시됩니다. 그러나 다른 단편으로 전환하고이 단편으로 돌아 가면 목록이 잘 채워집니다. else 문에있는 내용을 JSONException을 catch 한 후 줄과 동일하게 변경했습니다. 따라서 JSONArray가 onCompleted()에로드 되어도 동일한 메소드에서 setAdapter를 호출 할 수없는 것처럼 보입니다. – Wenger