2016-12-17 6 views
0

RecyclerView: No adapter attached; skipping layoutエラーが発生し、ViewPagerがRecyclerViewリストを表示していません。私は、私のフラグメントのonCreateメソッドに新しいアダプタオブジェクトを作成します。これは適切な方法です。私はここで間違って何をしていますか?Android - RecyclerView:アダプターは接続されていません。レイアウトをスキップ

フラグメントファイル:

public class HomeCurrentFragment extends Fragment { 
    private RecyclerView recView; 
    private EventAdapter eventAdapter; 

    public HomeCurrentFragment() { 
     // Required empty public constructor 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     eventAdapter = new EventAdapter(DummyData.getListData()); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_home_current, container, false); 

     // Get the recview for id 
     recView = (RecyclerView) view.findViewById(R.id.rec_list); 

     // Set the layout to linear (as to grid) 
     recView.setLayoutManager(new LinearLayoutManager(getActivity())); 
     recView.setAdapter(eventAdapter); 

     // Inflate the layout for this fragment 
     return view; 
    } 
} 

RecycleAdapterファイル:

public class EventAdapter extends RecyclerView.Adapter<EventAdapter.EventHolder> { 

    private ArrayList<EventItem> listData; 

    public static class EventHolder extends RecyclerView.ViewHolder { 

     private TextView title; 
     private ImageView icon; 
     private View container; 

     public EventHolder(View itemView) { 
      super(itemView); 

      this.title = (TextView) itemView.findViewById(R.id.lbl_item_text); 
      this.icon = (ImageView) itemView.findViewById(R.id.im_item_icon); 
      this.container = itemView.findViewById(R.id.cont_item_root); 

     } 
    } 

    public EventAdapter(ArrayList<EventItem> listData) { 
     this.listData = listData; 
    } 

    @Override 
    public EventHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.event_item, parent, false); 
     return new EventHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(EventHolder holder, int position) { 
     EventItem item = listData.get(position); 
     holder.title.setText(item.getTitle()); 
     holder.icon.setImageResource(item.getImageResId()); 
    } 

    @Override 
    public int getItemCount() { 
     return listData.size(); 
    } 

} 
+0

あなたの断片には1つのRecyclerViewがありますか?あなたのコードは大丈夫です、私はあなたの問題はどこか別のものだと思います。あなたはすべてのlogcatを投稿できますか? – jonathanrz

答えて

0

変更:

public EventHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.event_item, parent, false); 
     return new EventHolder(view); 
    } 

へ:

public EventAdapter.EventHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.event_item, parent, false); 
     return new EventHolder(view); 
    } 

私はなぜ、うまくいけば、誰かがコメントで説明できることを確信しています:)

+0

これはまったく同じコードです(importステートメントは変更されましたが、確かに、関連はありません)。あなたはたぶん何か変わったでしょう –

関連する問題