2017-03-02 61 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

和以前一樣的錯誤 –

相關問題