我有一个RecyclerView从服务器解析外部JSON数据.它工作正常,但JSON上的Volley异步任务有时需要一段时间,当它发生时,片段显示一个空的空白视图.
如何创建测试以检查视图是否为空并显示msg(如果是)?我试着检查:
if (recyclerView == null)
if (jsonList == null)
if (adapter.getItemCount() == 0)
if (bundle == null)
Run Code Online (Sandbox Code Playgroud)
但是这些测试要么不做任何事情,要么每次都显示错误消息,即使RecyclerView不为空.
这是片段上的代码:
public void onViewCreated(View view, Bundle savedInstanceState) {
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
layoutManager.supportsPredictiveItemAnimations();
recyclerView.setLayoutManager(layoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setClickable(true);
recyclerView.setHasFixedSize(true);
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
NovaAdapter novaAdapter = new NovaAdapter(getActivity(),jsonList);
if (novaAdapter.getItemCount() != 0) {
recyclerView.setAdapter(novaAdapter);
}else{
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("Retrieving data from Server");
pDialog.show();
}
super.onViewCreated(view, savedInstanceState);
Run Code Online (Sandbox Code Playgroud)
和适配器上的方法:
@Override
public int getItemCount() {
return (null != novaList ? novaList.size() : 0); …Run Code Online (Sandbox Code Playgroud)