Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
- at java.util.ArrayList.get(ArrayList.java:411)
- at com.tijdelijk.firebasetest.Start$1.populateViewHolder(Start.java:69)
- at com.tijdelijk.firebasetest.Start$1.populateViewHolder(Start.java:64)
- public class CategoryFragment extends Fragment {
- View myFragment;
- RecyclerView listCategory;
- RecyclerView.LayoutManager layoutManager;
- FirebaseRecyclerAdapter<Category, CategoryViewHolder> adapter;
- FirebaseDatabase database;
- DatabaseReference categories;
- DatabaseReference subCategory;
- public static CategoryFragment newInstance() {
- CategoryFragment fragment = new CategoryFragment();
- return fragment;
- }
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- database = FirebaseDatabase.getInstance();
- categories = database.getReference("Category");
- subCategory = database.getReference("SubCategory");
- }
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- myFragment = inflater.inflate(R.layout.fragment_category, container, false);
- listCategory = (RecyclerView) myFragment.findViewById(R.id.listCategory);
- listCategory.setHasFixedSize(true);
- layoutManager = new LinearLayoutManager(container.getContext());
- listCategory.setLayoutManager(layoutManager);
- loadCategories();
- return myFragment;
- }
- private void loadCategories() {
- adapter = new FirebaseRecyclerAdapter<Category, CategoryViewHolder>(
- Category.class,
- R.layout.category_layout,
- CategoryViewHolder.class,
- categories
- ) {
- @Override
- protected void populateViewHolder(CategoryViewHolder viewHolder, final Category model, int position) {
- viewHolder.category_name.setText(model.getName());
- Picasso.with(getActivity())
- .load(model.getImage())
- .into(viewHolder.category_image);
- viewHolder.setItemClickListener(new ItemClickListener() {
- @Override
- public void onClick(View view, int position, boolean isLongClick) {
- Intent startGame = new Intent(getActivity(), Start.class);
- Common.categoryId = adapter.getRef(position).getKey();
- loadSubCategory(Common.categoryId);
- startActivity(startGame);
- }
- });
- }
- };
- adapter.notifyDataSetChanged();
- listCategory.setAdapter(adapter);
- }
- private void loadSubCategory(String categoryId) {
- //Clear list if there are old subCategory
- if (Common.subCategoryList.size() > 0) {
- Common.subCategoryList.clear();
- }
- subCategory.orderByChild("CategoryId").equalTo(categoryId)
- .addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
- SubCategory ques = postSnapshot.getValue(SubCategory.class);
- Common.subCategoryList.add(ques);
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- }
- public class Start extends AppCompatActivity {
- FirebaseDatabase database;
- DatabaseReference subCategory;
- FirebaseRecyclerAdapter<SubCategory, SubCategoryViewHolder> adapter;
- RecyclerView listSubCategory;
- RecyclerView.LayoutManager layoutManager;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_start);
- database = FirebaseDatabase.getInstance();
- subCategory = database.getReference("SubCategory");
- listSubCategory = findViewById(R.id.listSubCategory);
- listSubCategory.setHasFixedSize(true);
- layoutManager = new LinearLayoutManager(getBaseContext());
- listSubCategory.setLayoutManager(layoutManager);
- loadSubCategories();
- adapter.notifyDataSetChanged();
- listSubCategory.setAdapter(adapter);
- }
- private void loadSubCategories() {
- adapter = new FirebaseRecyclerAdapter<SubCategory, SubCategoryViewHolder>(
- SubCategory.class,
- R.layout.subcategory_layout,
- SubCategoryViewHolder.class,
- subCategory
- ) {
- @Override
- protected void populateViewHolder(SubCategoryViewHolder viewHolder, SubCategory model, int position) {
- viewHolder.subcategory_nlname.setText(Common.subCategoryList.get(position).getLatijnseNaam());
- viewHolder.subcategory_ltname.setText(Common.subCategoryList.get(position).getNederlandseNaam());
- viewHolder.setItemClickListener(new ItemClickListener() {
- @Override
- public void onClick(View view, int position, boolean isLongClick) {
- Intent startGame = new Intent(Start.this, Start.class);
- Common.categoryId = adapter.getRef(position).getKey();
- startActivity(startGame);
- }
- });
- }
- };
- }
- public class SubCategoryViewHolder extends RecyclerView.ViewHolder
- implements View.OnClickListener{
- public TextView subcategory_nlname;
- public TextView subcategory_ltname;
- private ItemClickListener itemClickListener;
- public SubCategoryViewHolder(View itemView) {
- super(itemView);
- subcategory_ltname = itemView.findViewById(R.id.latijnse_naam);
- subcategory_nlname = itemView.findViewById(R.id.nederlandse_naam);
- public void setItemClickListener(ItemClickListener itemClickListener) {
- this.itemClickListener = itemClickListener;
- }
- @Override
- public void onClick(View view) {
- itemClickListener.onClick(view,getAdapterPosition(),false);
- }
Add Comment
Please, Sign In to add comment