在Fragment的onCreateView()方法中初始化控件,
在这个Fragment隐藏的状态下无法找到控件
private List list = new ArrayList();
private RecyclerView recyclerView;
private MyAdapter myAdapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.fragmentitem,null);
Log.e("onCreateView","onCreateView");
recyclerView = (RecyclerView) view.findViewById(R.id.recy);
SharedPreferences sp = getContext().getSharedPreferences("or", Activity.MODE_PRIVATE);
String str = sp.getString("home","");
if (str != "") {
PetHome home = GsonManager.getGson(str, PetHome.class);
for (int i = 0; i < home.getOrder().size(); i++) {
if (home.getOrder().get(i).getOrders().getOrType() == 3){
Order o = null;
o = home.getOrder().get(i);
list.add(o);
}
}
Log.e("showcan",list.size()+"--");
LinearLayoutManager manager = new LinearLayoutManager(getActivity());
manager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(manager);
myAdapter = new MyAdapter(list);
recyclerView.setAdapter(myAdapter);
}else {
Toast.makeText(getContext(), "网络请求失败", Toast.LENGTH_SHORT).show();
}
return view;
}
上面是onCreateView()方法
@Override
public void change(List<Order> oList , int index ) {
Log.e("cancel-1","cancel"+list.size());
list = new ArrayList<Order>();
if (oList.size() > 0){
for (int i = 0; i < oList.size(); i++){
if (oList.get(i).getOrders().getOrType() == 3){
Order o = null;
o = oList.get(i);
list.add(o);
}
}
}
Log.e("cancel-2","cancel"+list.size());
/* LinearLayoutManager manager = new LinearLayoutManager(getActivity());
manager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(manager);*/
myAdapter.notifyDataSetChanged();
}
上面这是自己写的接口 我在另一个Fragment中调用了这个接口,myAdapter就会报控制针。