【发布时间】:2017-09-29 13:53:37
【问题描述】:
如果fragemnt被召回,我希望它首先调用的片段显示视图不再运行json。我再次打开片段后的代码片段再次请求json。我是 java/android 编程的初学者,但我试图添加不同的教程来创建一个定制的应用程序来做我想做的事,这对这里的大多数人来说可能很容易,但我卡住了
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
// Creating volley request obj
JsonArrayRequest billionaireReq = new JsonArrayRequest(getURL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
url_maps = new HashMap<String, String>();
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
url_maps.put(obj.getString("title") + " - " + obj.getString("releaseYear"), obj.getString("image"));
} catch (JSONException e) {
e.printStackTrace();
}
}
for (String name : url_maps.keySet()) {
TextSliderView textSliderView = new TextSliderView(getActivity());
// initialize a SliderLayout
textSliderView
.description(name)
.image(url_maps.get(name))
.setScaleType(BaseSliderView.ScaleType.CenterCrop)
.setOnSliderClickListener(HomeFragment.this);
//add your extra information
textSliderView.bundle(new Bundle());
textSliderView.getBundle().putString("extra", name);
mSlider.addSlider(textSliderView);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getActivity(), "network issue: please enable wifi/mobile data", Toast.LENGTH_SHORT).show();
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(billionaireReq);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_home, container, false);
mSlider = (SliderLayout) view.findViewById(R.id.slider_home);
gridView = (GridView) view.findViewById(R.id.grid);
gridView.setAdapter(new CustomAndroidGridViewAdapter(getActivity(), gridViewStrings, gridViewImages));
mSlider.setPresetTransformer(SliderLayout.Transformer.Stack);
mSlider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Top);
mSlider.setCustomAnimation(new DescriptionAnimation());
mSlider.setDuration(4000);
return view;
}
【问题讨论】:
标签: android json android-studio android-fragments android-volley