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) {



                }
            });
        }
    }

}

No comments:

Post a Comment

Activity Navigation One Activity to another Activity

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