I was tring to make an attendence app in andoid studio using java.but my Recycle view is not showing any itmes that i add to my database.The mainactiviy is empty
MainActivity.java
package com.vusamiul.finalattendence;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.widget.EditText;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
ClassAdapter classAdapter;
RecyclerView.LayoutManager layoutManager;
ArrayList<ClassItem> classItems = new ArrayList<>();
FloatingActionButton fab;
EditText semesterNameTxt, courseNameTxt, sectionNameTxt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fab = findViewById(R.id.fab_main);
fab.setOnClickListener(v -> showOptions());
recyclerView = findViewById(R.id.recyclerView);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
classAdapter = new ClassAdapter(this, classItems);
recyclerView.setAdapter(classAdapter);
}
private void showOptions() {
MyDialog dialog=new MyDialog();
dialog.show(getSupportFragmentManager(),MyDialog.CLASS_ADD_DIALOG);
dialog.setListener(this::addSemester);
}
private void addSemester(String semesterName, String courseName, String sectionName) {
classItems.add(new ClassItem(semesterName, courseName, sectionName));
classAdapter.notifyDataSetChanged();
}
}
MyDialog.java
package com.vusamiul.finalattendence;
import android.app.Dialog;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
public class MyDialog extends DialogFragment {
public static String CLASS_ADD_DIALOG="addClass";
OnclickListener listener;
public interface OnclickListener{
void onClick(String text1,String text2,String text3);
}
public void setListener(OnclickListener listener) {
this.listener = listener;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
Dialog dialog=null;
if(getTag().equals(CLASS_ADD_DIALOG))dialog=getAddClassDialog();
return dialog;
}
private Dialog getAddClassDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
View view = LayoutInflater.from(getActivity()).inflate(R.layout.dailog, null);
builder.setView(view);
TextView title=view.findViewById(R.id.title_template);
title.setText("Add Course Name");
EditText semesterNameTxt = view.findViewById(R.id.edt02);
semesterNameTxt.setHint("Semester Name");
EditText courseNameTxt = view.findViewById(R.id.edt01);
courseNameTxt.setHint("Course Name");
EditText sectionNameTxt = view.findViewById(R.id.edt03);
sectionNameTxt.setHint("Section");
Button cancel = view.findViewById(R.id.cancel_btn);
Button done = view.findViewById(R.id.done_btn);
cancel.setOnClickListener(v ->dismiss());
done.setOnClickListener(v -> {
String semesterName=semesterNameTxt.getText().toString();
String courseName=courseNameTxt.getText().toString();
String sectionName=sectionNameTxt.getText().toString();
listener.onClick(semesterName,courseName,sectionName);
dismiss();
});
return builder.create();
}
}
ClassItem.java
package com.vusamiul.finalattendence;
public class ClassItem {
String semesterName;
String courseName;
String section;
public ClassItem(String semesterName, String courseName, String section) {
this.semesterName = semesterName;
this.courseName = courseName;
this.section = section;
}
public String getSemesterName() {
return semesterName;
}
public void setSemesterName(String semesterName) {
this.semesterName = semesterName;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public String getSection() {
return section;
}
public void setSection(String section) {
this.section = section;
}
}
ClassAdapter.java
package com.vusamiul.finalattendence;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
public class ClassAdapter extends RecyclerView.Adapter<ClassAdapter.ClassViewHolder> {
ArrayList<ClassItem> classItems;
Context context;
public ClassAdapter(Context context, ArrayList<ClassItem> classItems) {
this.classItems = classItems;
this.context=context;
}
public static class ClassViewHolder extends RecyclerView.ViewHolder{
TextView semseterName,courseName,sectionName;
public ClassViewHolder(@NonNull View itemView) {
super(itemView);
semseterName=itemView.findViewById(R.id.semester_txtview);
courseName=itemView.findViewById(R.id.course_txtview);
sectionName=itemView.findViewById(R.id.section_txtview);
}
}
@NonNull
@Override
public ClassViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView= LayoutInflater.from(parent.getContext()).inflate(R.layout.class_item,parent,false);
return new ClassViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull ClassViewHolder holder, int position) {
holder.semseterName.setText(classItems.get(position).getSemesterName());
holder.courseName.setText(classItems.get(position).getCourseName());
holder.sectionName.setText(classItems.get(position).getSection());
}
@Override
public int getItemCount() {
return 0;
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".MainActivity">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_main"
android:layout_width="65dp"
android:layout_height="65dp"
android:layout_alignParentBottom="true"
android:src="@drawable/baseline_add_24"
android:layout_centerHorizontal="true"
android:layout_margin="25dp"
/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
class_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="120dp">
<LinearLayout
android:layout_centerVertical="true"
android:padding="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/custom_edittext"
>
<TextView
android:id="@+id/semester_txtview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Semester"
android:textSize="25sp"
android:textColor="@color/black"/>
<TextView
android:id="@+id/course_txtview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Course"
android:textSize="20sp"
android:textColor="@color/black"/>
<TextView
android:id="@+id/section_txtview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Section"
android:textSize="15sp"
android:textColor="@color/black"/>
</LinearLayout>
</RelativeLayout>
dailog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/pagebkg"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="170dp"
android:background="@drawable/custom_edittext"
android:backgroundTint="@color/white"
android:orientation="vertical"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:padding="24dp">
<TextView
android:id="@+id/title_template"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Title"
android:textColor="@color/lavender"
android:textSize="30sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_margin="8dp"
android:background="@color/black"
android:padding="10dp"
android:backgroundTint="@color/purple_700"/>
<EditText
android:id="@+id/edt01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:hint="edt01" />
<EditText
android:id="@+id/edt02"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:hint="edt02" />
<EditText
android:id="@+id/edt03"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:hint="edt03" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/cancel_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:text="Cancel" />
<Button
android:id="@+id/done_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="Done" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
So can any onne tell me where is the problem that stops the Recycleview from showing on main activity