FireStore RecyclerView With Text and Image View.
build.gradle ( app level)
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "hego.android.befoodie"
minSdkVersion 23
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'com.firebaseui:firebase-ui-firestore:4.3.1'
implementation 'com.squareup.picasso:picasso:2.71828'
}
=======================================================================
activity_custom.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="vertical"
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=".Custom">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="1"
/>
</LinearLayout>
=====================================================================
Custom.java (avtivity class)
package hego.android.befoodie;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.firebase.ui.firestore.FirestoreRecyclerOptions;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.firestore.CollectionReference;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.Query;
import com.google.firebase.firestore.QuerySnapshot;
import java.util.Calendar;
import java.util.HashMap;
import static hego.android.befoodie.MainActivity.getValueOf;
import static hego.android.befoodie.MainActivity.saveIntoShareprefrence;
public class Custom extends AppCompatActivity {
private static final String TAG = "Custom";
private FirebaseFirestore firebaseFirestore;
private RecyclerView recyclerView;
private recyclerAdepter recyclerAdepter;
private CollectionReference collectionReference;
private Query query;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom);
customSearchText = findViewById(R.id.customSearchText);
eng = findViewById(R.id.eng);
guj = findViewById(R.id.guj);
dropDown = findViewById(R.id.dropDown);
dropDownItem = findViewById(R.id.dropDownItem);
doneSelecting = findViewById(R.id.doneSelecting);
recyclerView = (RecyclerView)findViewById(R.id.recyclerView);
firebaseFirestore = FirebaseFirestore.getInstance();
collectionReference = firebaseFirestore.collection("veg");
query = collectionReference.orderBy("title", Query.Direction.ASCENDING);
FirestoreRecyclerOptions<model> firestoreRecyclerOptions = new FirestoreRecyclerOptions.Builder<model>()
.setQuery(query,model.class)
.build();
recyclerAdepter = new recyclerAdepter(firestoreRecyclerOptions);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(recyclerAdepter);
}
@Override
protected void onStart() {
super.onStart();
recyclerAdepter.startListening();
}
@Override
protected void onStop() {
super.onStop();
recyclerAdepter.stopListening();
}
}======================================================================recyclerAdepter.java (simple java class)package hego.android.befoodie;
import android.annotation.SuppressLint;
import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.media.Image;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import com.firebase.ui.firestore.FirestoreRecyclerAdapter;
import com.firebase.ui.firestore.FirestoreRecyclerOptions;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.squareup.picasso.Picasso;
import static hego.android.befoodie.MainActivity.getValueOf;
public class recyclerAdepter extends FirestoreRecyclerAdapter<model, recyclerAdepter.ViewHolder> {
private static final String TAG = "recyclerAdepter";
private OnitemClickListerner onitemClickListerner;
private onDeleteItemClickListerner onDeleteItemClickListerner;
public recyclerAdepter(@NonNull FirestoreRecyclerOptions<model> options) {
super(options);
}
@SuppressLint("SetTextI18n")
@Override
protected void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int i, @NonNull model model) {
viewHolder.title.setText(model.getTitle());
viewHolder.message.setText("Gujarati name : "+model.getMessage());
Picasso.get().load(model.getImageUrl())
.placeholder(R.drawable.ic_food)
.into(viewHolder.imageView);
Picasso.get().load(model.getCheckBox())
.into(viewHolder.selectedItem);
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_layout,parent,false);
return new ViewHolder(view);
}
public class ViewHolder extends RecyclerView.ViewHolder{
TextView title;
TextView message;
ImageView imageView;
ImageView selectedItem;
ViewHolder(@NonNull final View itemView) {
super(itemView);
this.title = itemView.findViewById(R.id.t);
this.message = itemView.findViewById(R.id.m);
this.imageView = itemView.findViewById(R.id.imageView);
this.selectedItem = itemView.findViewById(R.id.selectedItem);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION && onitemClickListerner != null){
onitemClickListerner.Onitemclick(getSnapshots().getSnapshot(position),position,itemView, ViewHolder.this);
}
}
});
}
}
public interface OnitemClickListerner{
void Onitemclick(DocumentSnapshot documentSnapshot, int position,View view,ViewHolder viewHolder);
}
public interface onDeleteItemClickListerner{
void onDeleteItemClick(DocumentSnapshot documentSnapshot, int position);
}
public void setOnitemClickListerner(OnitemClickListerner onitemClickListerner){
this.onitemClickListerner = onitemClickListerner;
}
public void setOnDeleteItemClickListerner(onDeleteItemClickListerner onDeleteItemClickListerner1){
this.onDeleteItemClickListerner = onDeleteItemClickListerner1;
}
}
Comments
Post a Comment