Showing posts with label Firebase Recycle View Adapter in Android. Show all posts
Showing posts with label Firebase Recycle View Adapter in Android. Show all posts

Tuesday, October 5, 2021

Firebase Recycle View Adapter in Android

 Firebase Recycle View Adapter in Android

       Data insert Self(Kuad he data insert kara)

 MainActivity

XML Code:-

 

<androidx.constraintlayout.widget.ConstraintLayout 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">

    <
androidx.recyclerview.widget.RecyclerView
       
android:id="@+id/recycleview"
       
android:layout_width="match_parent"
       
android:layout_height="match_parent"
       
tools:layout_editor_absoluteX="233dp"
       
tools:layout_editor_absoluteY="279dp"
       
/>
</
androidx.constraintlayout.widget.ConstraintLayout>

 

Only Xml(Resourse Layout):-

 

<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:layout_width="match_parent"
   
android:layout_height="wrap_content"
   
xmlns:app="http://schemas.android.com/apk/res-auto"
   
app:cardCornerRadius="6dp"
   
android:elevation="6dp"
   
app:cardUseCompatPadding="true"
   
>
    <
RelativeLayout

       
android:layout_width="match_parent"
       
android:layout_height="wrap_content"
       
android:padding="15dp">
        <
ImageView
           
android:layout_width="80dp"
           
android:layout_height="80dp"
           
android:src="@drawable/ic_launcher_background"
           
android:layout_centerVertical="true"
           
android:id="@+id/img1"/>
        <
TextView
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:id="@+id/nametext"
           
android:text="Student Name"
           
android:textStyle="bold"
           
android:textSize="25sp"
           
android:layout_toRightOf="@+id/img1"
           
android:layout_marginLeft="10dp"/>
        <
TextView
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:id="@+id/coursetext"
           
android:text="Course Name"
           
android:textSize="25sp"
           
android:layout_toRightOf="@+id/img1"
           
android:layout_below="@+id/nametext"
           
android:layout_marginLeft="10dp"/>
        <
TextView
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:id="@+id/emailtext"
           
android:text="Email Id"
           
android:textSize="25sp"
           
android:layout_toRightOf="@+id/img1"
           
android:layout_below="@+id/coursetext"
           
android:layout_marginLeft="10dp"/>


    </
RelativeLayout>

</
androidx.cardview.widget.CardView>

 

Java Code MainActivity :-

 

package com.niranjan.secondbook;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.SearchView;

import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.firebase.database.FirebaseDatabase;

public class MainActivity extends AppCompatActivity {
RecyclerView
recyclerView;
MainAdapter
mainAdapter;
FirebaseDatabase
firebaseDatabase;

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(R.layout.
activity_main);
       
recyclerView=findViewById(R.id.recycleview);


       
recyclerView.setLayoutManager(new LinearLayoutManager(this));

        FirebaseRecyclerOptions<Mainmodal> options=
               
new FirebaseRecyclerOptions.Builder<Mainmodal>()
                .setQuery(FirebaseDatabase.getInstance().getReference().child(
"teacher"),Mainmodal.class).build();

       
mainAdapter=new MainAdapter(options);
       
recyclerView.setAdapter(mainAdapter);
    }

   
@Override
   
protected void onStart() {
       
super.onStart();
       
mainAdapter.startListening();
    }

   
@Override
   
protected void onStop() {
       
super.onStop();
       
mainAdapter.stopListening();
    }

   
@Override
   
public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.
search,menu);
        MenuItem item = menu.findItem(R.id.
search);
        SearchView searchView = (SearchView) item.getActionView();
        searchView.setOnQueryTextListener(
new SearchView.OnQueryTextListener() {
           
@Override
           
public boolean onQueryTextSubmit(String query) {
                textSearch(query);
               
return false;
            }

            
@Override
           
public boolean onQueryTextChange(String query) {
                textSearch(query);
               
return false;
            }
        });


       
return super.onCreateOptionsMenu(menu);
    }
   
private  void  textSearch(String str){
        FirebaseRecyclerOptions<Mainmodal> options=
               
new FirebaseRecyclerOptions.Builder<Mainmodal>()

                        .setQuery(FirebaseDatabase.getInstance().getReference().child(
"teacher").orderByChild("name").startAt(str).endAt("~"),Mainmodal.class).build();



       
mainAdapter= new MainAdapter(options);
       
mainAdapter.startListening();
       
recyclerView.setAdapter(mainAdapter);



    }

}

 

 

Only Java Code:-

mainmodel

 

package com.niranjan.secondbook;

public class Mainmodal {
    String
course,email,name,turl;

   
public Mainmodal() {

    }

   
public Mainmodal(String course, String email, String name, String turl) {
       
this.course = course;
       
this.email = email;
       
this.name = name;
       
this.turl = turl;

    }

   
public String getCourse() {
       
return course;
    }

   
public void setCourse(String course) {
       
this.course = course;
    }

   
public String getEmail() {
       
return email;
    }

   
public void setEmail(String email) {
       
this.email = email;
    }

   
public String getName() {
       
return name;
    }

   
public void setName(String name) {
       
this.name = name;
    }

   
public String getTurl() {
       
return turl;
    }

   
public void setTurl(String turl) {
       
this.turl = turl;
    }
}

 

Only Java Class:-

myadapter

 

package com.niranjan.secondbook;

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.bumptech.glide.Glide;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;

public class MainAdapter extends FirebaseRecyclerAdapter<Mainmodal,MainAdapter.myViewholder> {
   
/**
     * Initialize a {@link RecyclerView.Adapter} that listens to a Firebase query. See
     * {@link FirebaseRecyclerOptions} for configuration options.
     *
     * @param
options
    
*/
   
public MainAdapter(@NonNull FirebaseRecyclerOptions<Mainmodal> options) {
       
super(options);
    }

   
@Override
   
protected void onBindViewHolder(@NonNull myViewholder holder, int position, @NonNull Mainmodal model) {
holder.
name.setText(model.getName());
        holder.
course.setText(model.getCourse());
        holder.
email.setText(model.getEmail());
        Glide.with(holder.
imageView.getContext())
                .load(model.getTurl())
                .placeholder(R.drawable.
common_google_signin_btn_icon_dark)
                .error(R.drawable.
common_google_signin_btn_icon_dark_normal)
                .into(holder.
imageView);
    }

   
@NonNull
    @Override
   
public myViewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.
mailitem,parent,false);

       
return new myViewholder(view);
    }

   
class myViewholder extends RecyclerView.ViewHolder{

        ImageView
imageView;
        TextView
name,course,email;

       
public myViewholder(@NonNull View itemView) {
           
super(itemView);
           
imageView=itemView.findViewById(R.id.img1);
           
name=itemView.findViewById(R.id.nametext);
           
course=itemView.findViewById(R.id.coursetext);
           
email=itemView.findViewById(R.id.emailtext);
           
imageView.setOnClickListener(new View.OnClickListener() {
               
@Override
               
public void onClick(View v) {



                }
            });
        }
    }

}

Activity Navigation One Activity to another Activity

Main Activity :-   <? xml version ="1.0" encoding ="utf-8" ?> < RelativeLayout xmlns: android ="http://sch...