Recylcerview in android studio

 crete three things:-

1.main.class

2.modal class (for firebase)

3.adapter class 

AND XML FILE


main.class

package com.atech.exammind.classes;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.view.MenuItem;

import com.atech.exammind.ClassModal;
import com.atech.exammind.R;
import com.atech.exammind.SubjectRecylerAdapter;

import java.util.ArrayList;
import java.util.List;

public class NinthClass extends AppCompatActivity {


private RecyclerView myrecylerView;
public List<ClassModal> myClass;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_subject);

myClass = new ArrayList<>();
myClass.add(new ClassModal("MATH",R.drawable.amit));
myClass.add(new ClassModal("PHYSICS",R.drawable.b));
myClass.add(new ClassModal("CHEMISTRY",R.drawable.c));
myClass.add(new ClassModal("BIOLOGY",R.drawable.download));

Toolbar toolbar = findViewById(R.id.toolBar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle(getIntent().getStringExtra("title"));

myrecylerView = (RecyclerView)findViewById(R.id.subjectRecyler);

GridLayoutManager gridLayoutManager = new GridLayoutManager(getApplicationContext(),2, LinearLayoutManager.VERTICAL,false);
myrecylerView.setLayoutManager(gridLayoutManager);

RecylerAdapter recylerAdapter = new RecylerAdapter(this,myClass);
myrecylerView.setAdapter(recylerAdapter);




}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
}
return super.onOptionsItemSelected(item);
}
}

modAL CLSS :-

package com.atech.exammind;

public class ClassModal {

private String title;
private int Image;

public ClassModal(String title, int image) {
this.title = title;
Image = image;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public int getImage() {
return Image;
}

public void setImage(int image) {
Image = image;
}
}

ADAPTER CLASS:-

package com.atech.exammind;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.atech.exammind.classes.NinthClass;

import java.util.ArrayList;
import java.util.List;

public class ClassRecylerAdapter extends RecyclerView.Adapter<ClassRecylerAdapter.myViewHolder> {

Context mContext;
public List<ClassModal> mClass = new ArrayList<>();

public ClassRecylerAdapter(Context mContext, List<ClassModal> mClass) {
this.mContext = mContext;
this.mClass = mClass;
}

@NonNull
@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v;
v = LayoutInflater.from(mContext).inflate(R.layout.class_grid,parent,false);
myViewHolder vHolder = new myViewHolder(v);


return vHolder;
}

@Override
public void onBindViewHolder(@NonNull myViewHolder holder, int position) {

holder.title.setText(mClass.get(position).getTitle());
holder.Image.setImageResource(mClass.get(position).getImage() );




}

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


public static class myViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

private TextView title;
private ImageView Image;

public myViewHolder(@NonNull View itemView) {
super(itemView);


title = (TextView) itemView.findViewById(R.id.classGridText);
Image = (ImageView) itemView.findViewById(R.id.classGridImage);
itemView.setClickable(true);
itemView.setOnClickListener(this);
}


@Override
public void onClick(View v) {
Intent intent;
switch (getAdapterPosition()) {
case 0:
intent = new Intent(itemView.getContext(), NinthClass.class);
break;

case 1:
intent = new Intent(itemView.getContext(),SubjectActivity.class);
break;

case 2:
intent = new Intent(itemView.getContext(),TabActivity.class);
break;
default:
intent = new Intent(itemView.getContext(),MainActivity.class);
break;

}
itemView.getContext().startActivity(intent);
}
}

}

FOR TABBED ACTIVIY  

IN FRGEMENT:-

MAIN ACTIVITY


package com.atech.exammind;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
import java.util.List;

public class ClassActivity extends Fragment {

private RecyclerView myrecylerView;
public List<ClassModal> myClass;

public ClassActivity() {

}



@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activty_class, container, false);
myrecylerView = (RecyclerView)rootView.findViewById(R.id.ClassRecyler);
ClassRecylerAdapter recylerAdapter = new ClassRecylerAdapter(getContext(),myClass);
myrecylerView.setLayoutManager(new GridLayoutManager(getActivity() ,2));
myrecylerView.setAdapter(recylerAdapter);
return rootView;

}

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

myClass = new ArrayList<>();
myClass.add(new ClassModal("CLASS 9",R.drawable.amit));
myClass.add(new ClassModal("CLASS 10",R.drawable.b));
myClass.add(new ClassModal("CLASS 11",R.drawable.c));
myClass.add(new ClassModal("CLASS 12",R.drawable.download));


}

}


XML FILE:-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".paper.NEET">

<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:id="@+id/toolBar"
android:background="@color/colorPrimary"/>


<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recylcerNeet"/>



</LinearLayout>