gpt4 book ai didi

android - 如何在不再次运行 JSON 的情况下调用 android fragment ?

转载 作者:行者123 更新时间:2023-11-29 15:39:19 41 4
gpt4 key购买 nike

我想如果 fragemnt 被召回, fragment 显示 View 它首先调用而不是再次运行 json。我再次打开 fragment 后的代码 fragment 再次请求 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;
}

最佳答案

“我再次打开 fragment 后的代码 fragment 再次请求 json”我从你的问题中得到的是,如果你过去已经访问过相同的 fragment ,你不想再次请求 json。你可以做一件事,当你第一次访问 fragment 时,在 saveStateInstance(Bundle bundle) 覆盖方法中将 json 对象保存到 Bundle 中,当你重新访问 fragment 时,检查并从 onCreateView(LayoutInflater inflater, ViewGroup parent, bundle savedInstanceState) 方法。通过这种方式,您可以维护 fragment 的状态。

关于android - 如何在不再次运行 JSON 的情况下调用 android fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43731139/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com