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