我正在尝试根据facebook-android-sdk中的示例实现Facebook应用。 我正在改变它,我很难解决一些非常基本的问题。
我正在进行主要活动,显示Facebook附近的地方。 这就是mainActivity.java中的代码
private void getFBPlaces()
{
fbObject.fetchPlaces();
// NOW I want to fill my listview with the results.....
// someting like
placesList = (ListView) findViewById(R.id.places_list);
placesList.setOnItemClickListener(Places.this);
placesList.setAdapter(new PlacesListAdapter(Places.this));
}
这是来自FBObject.java的相关代码,请参阅TODO
private void fetchPlaces() {
/*
* Source tag: fetch_places_tag
*/
Bundle params = new Bundle();
params.putString("type", "place");
try {
params.putString("center",
location.getString("latitude") + "," + location.getString("longitude"));
} catch (JSONException e) {
showToast("No places fetched.");
return;
}
params.putString("distance", "1000");
Utility.mAsyncRunner.request("search", params, new placesRequestListener());
}
/*
* Callback after places are fetched.
*/
public class placesRequestListener extends BaseRequestListener {
@Override
public void onComplete(final String response, final Object state) {
Log.d("Facebook-FbAPIs", "Got response: " + response);
dialog.dismiss();
try {
jsonArray = new JSONObject(response).getJSONArray("data");
if (jsonArray == null) {
showToast("Error: nearby places could not be fetched");
return;
}
} catch (JSONException e) {
showToast("Error: " + e.getMessage());
return;
}
mHandler.post(new Runnable() {
@Override
public void run() {
// TODO: I want to return the result to main activity
.....
}
});
}
有任何想法吗? 感谢
答案 0 :(得分:0)
我这样做的方法是将活动实例传递给PlacesRequestListener,并在完整的回调中执行类似“activity.findViewById(R.id.places_list)”的操作以获取列表。从这里你可以设置适配器。 当然,该方法需要在主线程上运行才能操作UI
答案 1 :(得分:0)
您应该考虑使用Android SDK的新v3.0b。特别是,它有一个内置的位置选择器,可以帮助加速你在这里尝试做的事情。
找到它