ViewModel,Fragment,liveData,改造

时间:2018-11-30 21:45:32

标签: android android-fragments retrofit viewmodel android-livedata

我在fragmentRecycler中遇到显示数据问题 我正在使用翻新来获取json 使用viewModel和liveData观察活动配置并从中生存 但我不知道如何将这些响应显示为项目的 在我的Fragment RecyclerView中 这是我的片段onCreate方法代码:-

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    voucherViewModel model = ViewModelProviders.of(getActivity()).get(voucherViewModel.class);
    model.getVoucher().observe(getActivity(), new Observer<List<Voucher>>() {
        @Override
        public void onChanged(@Nullable List<Voucher> vouchers) {
            Log.e("on change", "onChanged: " );
            adapter = new homeRecycleViewAdapter(getContext(),vouchers );
            recyclerView.setLayoutManager(new LinearLayoutManager(context));
            recyclerView.setAdapter(adapter);
        }

    });

}//end onCreate

我的OnCreateView方法代码:-

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.home_fragment_layout, container, false);
    adapter = new homeRecycleViewAdapter(context);
    recyclerView = view.findViewById(R.id.homeRecyclerViewID);

    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    recyclerView.setAdapter(adapter);
    //return inflated view
    return view;
}

所以我希望得到帮助:)

1 个答案:

答案 0 :(得分:0)

首先,在片段的onCreate()中不使用任何视图。这里没有创建视图,所以您可能会出错。

第二个, 让onCreteView只返回您正在放大的视图。

@UserDefinedType("person")
public class Person {
    @Column("name")
   private  String name;

   @Column("surname")
   private  String surname;

   @Column("best_friend")
   private Person bestFriend;
}

膨胀完成后,您将在onViewCreated上获得回调。在这里,您可以访问所有视图,例如您的recyclerview。在这里它们会膨胀。

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.home_fragment_layout, container, false)
    return view;
}