내 프래그먼트에서 API 호출을하고 발리를 사용하여 응답을 얻고 있습니다. 해당 조각 탭을 클릭 할 때마다 API 호출이 다시 수행됩니다. API 호출이 한 번만 수행되기를 바랍니다. 이것을 달성 할 수있는 방법이 있습니까? 나는 해결책을 찾고자했지만 아무것도 유용하지 않았다. 아래 코드는 제 조각입니다. 이렇게하여이 조각의 부모 활동에서 API를 this-Api는 Volley를 사용하여 프래그먼트를 호출합니다.
1 전화를하고 그에 따라 'setArguments(bundle)
'를 사용하여 조각에 데이터를 전달하는 방법은 두 가지가 있습니다
public class Tab3News extends Fragment {
private RecyclerView newsView;
private NewsAdapter newsadapter;
String myxmlResponse;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d("Making request again","hello");
View layout = inflater.inflate(R.layout.tab3news, container, false);
newsView = (RecyclerView) layout.findViewById(R.id.newstable);
String symPassed = ((SendString)getActivity()).message;
String XmlURL = "http://demoapplication-env.us-east-2.elasticbeanstalk.com/?symbol="+symPassed+"&indicator=XML";
RequestQueue queue = Volley.newRequestQueue(getActivity().getApplicationContext());
StringRequest req = new StringRequest(Request.Method.GET, XmlURL,
new Response.Listener<String>()
{
@Override
public void onResponse(String response) {
try {
//processData(response);
myxmlResponse = response;
newsView.setHasFixedSize(true);
//newsView.setItemAnimator(new DefaultItemAnimator());
newsView.setLayoutManager(new LinearLayoutManager(getActivity()));
newsView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
newsadapter = new NewsAdapter(getActivity(),getData());
newsView.setAdapter(newsadapter);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
// handle error response
}
}
);
queue.add(req);
return layout;
}
}
환경 설정에 부울 값 하나를 유지하고이 조각을 클릭 할 때마다 값을 확인하십시오. –
알았어. 네가 한 말을 정확히 이해하지 못했다. 완전히 안드로이드에 새로운. 사실 이것은 내 첫 번째 안드로이드 애플 리케이션입니다. 당신이 정교하게 해석 할 수 있습니까? 감사!! –
나는 나의 대답에서 설명하려고 노력했다, 이것이 당신을 도울 것이기를 바란다. 이 작업을 수행하는 다른 방법이 있어야하지만 현재이 대답 만 생각하면 될 수 있습니다.이 대답이 도움이된다면 받아들입니다. –