0

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

0 Answers0