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>