我是改装的新手,我想让我的getData列表从onResponse正文列表中保存价值并在不同的程序中调用它。最简单的方法是什么? 我一直在试试,数据已在onResponse中显示,但是当我想在不同的程序中使用它时,值getData列表仍然为null
my onCreate
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// getDataSeason();
listSeason=new ArrayList<>();
progress = new ProgressDialog(getActivity());
progress.setCancelable(false);
progress.setMessage("Loading. . .");
progress.show();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(getURL.GetMyURL())
.addConverterFactory(GsonConverterFactory.create())
.build();
SeasonAPI api = retrofit.create(SeasonAPI.class);
Call<SeasonList> call = api.getAllSeason();
call.enqueue(new Callback<SeasonList>() {
@Override
public void onResponse(Call<SeasonList> call, Response<SeasonList> response) {
progress.dismiss();
response.body();
for(int i=0;i<response.body().getResult().size();i++){
getData.add(i,response.body().getResult().get(i));
}
}
@Override
public void onFailure(Call<SeasonList> call, Throwable t) {
t.printStackTrace();
progress.dismiss();
Toast.makeText(getActivity(),"Network Connection Error",Toast.LENGTH_SHORT).show();
}
});}
String temp
我的getData列表
public class FragmentPromo extends Fragment {
public List<Season> getData;
我的季节清单
public class SeasonList {
@SerializedName("value")
@Expose
private Integer value;
@SerializedName("result")
@Expose
private List<Season> result = null;
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
public List<Season> getResult() {
return result;
}
public void setResult(List<Season> result) {
this.result = result;
}}
当我想在oncreateView
中显示getData值时,它为nullpublic View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view= inflater.inflate(R.layout.fragment_promo,container,false);
//Set date in Text View
txtDate=(TextView)view.findViewById(R.id.txtDateTime);
txtDate.setText(currendtDateTimeString);
myRecycleView=(RecyclerView)view.findViewById(R.id.season_view);
recycleViewAdapterSeason =new RecycleViewAdapterSeason(getContext(),listSeason);
myRecycleView.setLayoutManager(new LinearLayoutManager(getActivity()));
myRecycleView.setAdapter(recycleViewAdapterSeason);
getDataSeason();
Toast.makeText(getActivity(),getData.get(0).getNamaSeason(),Toast.LENGTH_SHORT).show();
return view;
}
答案 0 :(得分:0)
@Override
public void onResponse(Call<SeasonList>call,Response<SeasonList>response){
progress.dismiss();
Seasonlist seasonlist = response.body();
getData = seasonlist.getResult();
}