2
request.executeAnsyc를 호출하여 배열에 정보를 채우고 listview에 표시합니다. 안타깝게도 request.executeAnsyc가 완료되기 전에 배열이 호출됩니다. 따라서 아무 것도 내 프래그먼트의 onCreatView 메소드에 표시되지 않습니다.executeAsync Facebook android SDK
request.executeAnsyc가 완료된 후 배열을 사용하고 listview에 정보를 표시하는 방법이 있습니까?!
좋습니다.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.kizombalistfestival,
container, false);
listUsersInformation = new ArrayList<UserInfo>();
// TODO Auto-generated method stub
Session session = Session.getActiveSession();
new Request(session, "/me", null, HttpMethod.GET,
new Request.Callback() {
public void onCompleted(Response response) {
/* handle the result */
String serverresponse = response
.getGraphObject().getInnerJSONObject()
.toString();
Log.e("serverresponse", "" + serverresponse);
JSONObject jsonobj;
try {
jsonobj = new JSONObject(serverresponse);
UserInfo temp = new UserInfo(jsonobj
.getString("id"), jsonobj
.getString("first_name"), jsonobj
.getString("gender"), jsonobj
.getString("last_name"), jsonobj
.getString("link"), jsonobj
.getString("locale"), jsonobj
.getString("name"), jsonobj
.getString("timezone"), jsonobj
.getString("updated_time"), jsonobj
.getString("verified"));
listUsersInformation.add(temp);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).executeAsync();
list = (ListView) rootView.findViewById(R.id.list_festivals);
list.setAdapter(new ArrayAdapter<UserInfo>(getActivity(),
android.R.layout.simple_list_item_1, listUsersInformation));
return rootView;
}