2017-03-02 101 views
-2

我试图把json数组放入recyclerview,但是当我运行它时,它给了我 “试图调用虚方法widget.RecyclerView.setLayoutManager在空对象引用”尝试在空对象上调用虚方法widget.RecyclerView.setLayoutManager参考

这是我的代码片段:

public class ShopsFragment extends Fragment { 


private RecyclerView recyclerView; 
private RecyclerView.LayoutManager layoutManager; 
private RecyclerView.Adapter adapter; 
private List<ShopsData> data_List; 
public ShopsFragment() { 
    // Required empty public constructor 
} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View rootView = inflater.inflate(R.layout.fragment_shops, container, false); 
    recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view); 
    recyclerView.setHasFixedSize(true); 
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 
    data_List = new ArrayList<>(); 
    StoresBackgroundTask backgroundTask = new StoresBackgroundTask(getActivity()); 
    backgroundTask.execute(); 




    return rootView; 

} 

}

,这里是我的onPreExecude代码:

@Override 
protected void onPreExecute() { 
    recyclerView = (RecyclerView) activity.findViewById(R.id.recycler_view); 
    final LinearLayoutManager layoutManager = new LinearLayoutManager(ctx); 
    recyclerView.setLayoutManager(layoutManager); 
    recyclerView.setHasFixedSize(true); 
    adapter = new StoresRecyclerAdapter(arrayList); 
    recyclerView.setAdapter(adapter); 
} 

我在onPreExecude的第4行发现错误。 有什么问题?

回答

0

当然,这是因为您试图从在不同线程中运行的方法中检索recyclerView。如果recyclerView是一个类变量,只需从onPreExecute()方法中删除recyclerView = (RecyclerView) activity.findViewById(R.id.recycler_view);行。

+0

谢谢你,但它不起作用 –

+0

如果你删除该行,你会得到哪个错误? –

+0

和以前一样的错误 –

相关问题