9

मैं इस त्रुटि मिल रही है, लेकिन मैं नहीं जानता कि में recyclerview के लिए क्या यह ... शायद तथ्य यह है कि यह एक में प्रारंभ किया जा रहा है के साथ कुछ खड़ी कर रहा है टुकड़ा और गतिविधि में ही नहीं। संपादित करें: शामिल StatsAdapter कोड"RecyclerView: नहीं एडाप्टर संलग्न; लेआउट लंघन" टुकड़ा

public class StatsFragment extends Fragment { 

    private RecyclerView mRecyclerView; 
    private LinearLayoutManager mLinearLayoutManager; 
    private RecyclerView.Adapter mAdapter; 
    private String[] myDataset = new String[]{"hello", "world", "yolo"}; 

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

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.fragment_stats, parent, false); 
     mRecyclerView = (RecyclerView) v.findViewById(R.id.cardList); 
     mRecyclerView.setHasFixedSize(true); 
     mAdapter = new StatsAdapter(myDataset); 
     mRecyclerView.setAdapter(mAdapter); 
     mLinearLayoutManager = new LinearLayoutManager(getActivity()); 
     mLinearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); 
     mRecyclerView.setLayoutManager(mLinearLayoutManager); 
     return v; 
    } 
} 



public class StatsAdapter extends RecyclerView.Adapter<StatsAdapter.ViewHolder> { 
    private String[] mDataset; 

    public static class ViewHolder extends RecyclerView.ViewHolder { 
     public TextView mTextView; 
     public ViewHolder(View v) { 
      super(v); 
      mTextView = (TextView) v.findViewById(R.id.title); 
     } 
    } 

    public StatsAdapter(String[] myDataset) { 
     mDataset = myDataset; 
    } 

    @Override 
    public StatsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_stats, parent, false); 
     ViewHolder vh = new ViewHolder(v); 
     return vh; 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     holder.mTextView.setText(mDataset[position]); 
    } 

    @Override 
    public int getItemCount() { 
     return mDataset.length; 
    } 
} 
+0

अनुकूलक और "गैर-दृश्य" से संबंधित वस्तुओं को बनाने के एक खाली एडाप्टर संलग्न करने के लिए ले जाएँ 'ऑनक्रेट' में। फिर 'recyclerview' के लिए अपने 'एडाप्टर' का उपयोग करें। –

+0

@ जेरेड बरोस, जो सही होने के बावजूद परिणाम नहीं बदलता है। – McGuile

+0

@McGuile अपना उत्तर पोस्ट करें या मेरा सही करें। –

उत्तर

9

अनुकूलक और "गैर-दृश्य" onCreate में संबंधित वस्तुओं बनाएँ। फिर RecyclerView के लिए अपने एडाप्टर का उपयोग करें।

इसके अलावा, एक स्पष्ट आदेश उनके उपयोग पर आधारित है और Activity जीवन चक्र में वस्तुओं की प्रक्रिया शुरू करके अपने कोड को साफ।

public class StatsFragment extends Fragment { 

    private RecyclerView mRecyclerView; 
    private LinearLayoutManager mLinearLayoutManager; 
    private StatsAdapter mAdapter; // was RecyclerView.Adapter mAdapter; 
    private String[] myDataset = new String[]{"hello", "world", "yolo"}; 

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

     // 1. 
     mAdapter = new StatsAdapter(myDataset); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.fragment_stats, parent, false); 

     // 2. 
     mLinearLayoutManager = new LinearLayoutManager(getActivity()); 
     mLinearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); 

     // 3. 
     mRecyclerView = (RecyclerView) v.findViewById(R.id.cardList); 
     mRecyclerView.setHasFixedSize(true); 
     mRecyclerView.setLayoutManager(mLinearLayoutManager); 
     mRecyclerView.setAdapter(mAdapter); 

     return v; 
    } 
} 
+0

mRecyclerView.setAdapter (mAdapter) करता है; भाग 3 के बाद जाओ? कोशिश की और अभी भी एक ही त्रुटि हो रही है – hshangguan

+0

क्या आपने मेरे सभी परिवर्तन और टिप्पणियां देखीं? बस कोड कॉपी और पेस्ट करें। –

+0

@ जेरेड आप ऑन-व्यू "संबंधित वस्तुओं को" क्रिएट "में" बनाएं "के लिए और स्पष्टीकरण जोड़ सकते हैं। इसे ऑनक्रेट व्यू में जोड़ने के बाद यह अलग क्यों है? – Nativ

18

अपने setLayoutManager लाइन से पहले setAdapter

4

एक तरह से इस समस्या को हल करने के लिए है RecyclerView

void initializeRecyclerView() { 

    recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView); 
    recyclerView.setAdapter(new SampleAdapter(getCurrentActivity())); 
    recyclerView.setLayoutManager(new LinearLayoutManager(getCurrentActivity())); 
    recyclerView.setHasFixedSize(true); 
} 
+2

क्या होगा यदि यह त्रुटि ** FirebaseRecyclerAdapter ** में हो रही है? –

संबंधित मुद्दे