【发布时间】:2016-02-27 17:42:36
【问题描述】:
我想在我的 Fragment 之一中使用 Volley 从下面的 url 解析 json。问题是“onResponse”没有激活。我试图用 Log 和 Toast Notification 来捕捉异常。也没有任何例外。似乎 OnResponse 不会在 Fragment 中触发。
这是我的片段。
public class PlacesToVisitFragment extends Fragment {
public PlacesToVisitFragment() {
// Required empty public constructor
}
StringBuilder sb = new StringBuilder();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_places_to_visit, container, false);
final TextView txt= (TextView)view.findViewById(R.id.textView8);
RequestQueue rq = Volley.newRequestQueue(getActivity().getApplicationContext());
String url= "http://www.flightradar24.com/AirportInfoService.php?airport=ORY&type=in";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// Do something with the response
try{
JSONObject o = new JSONObject(response);
JSONArray values=o.getJSONArray("flights");
for ( int i=0; i< values.length(); i++) {
JSONObject sonuc = values.getJSONObject(i);
sb.append("Flight: " + sonuc.getString("flight") + "\n");
sb.append("name: " + sonuc.getString("name") + "\n\n");
}
txt.setText(sb.toString());
} catch (JSONException ex){}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Handle error
}
});
// Inflate the layout for this fragment
return view;
}
}
这就是我从 Main Activity 导航到 Fragment 的方式。
if (id == R.id.nav_camera) {
PlacesToVisitFragment fragment = new PlacesToVisitFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.mainFrame, fragment);
ft.addToBackStack(null);
ft.commit();
}
我正在使用 Android Navigation Drawer 基本模板。提前感谢您的帮助。
【问题讨论】:
标签: android json android-fragments android-studio android-volley