ফায়ারবেজ রিয়েল টাইম ডাটাবেজ থেকে কিভাবে টেক্সট ইমেজ শো করাবেন । অ্যান্ড্রয়েড অ্যাপ এর ভিতরে, রিসাইকেলেরভিউ ব্যবহার করে। স্টেপ গুলো ফলো করুন। খুব সহজেই, প্রোগ্রামটি এপ্লাই করতে পারেন । আপনার অ্যাপ এর ভিতরে।
এই পোস্ট দেখলে সম্পূর্ণ বুঝতে পারবেন শিখতে পারবেন। প্রয়োজন হলে, আমাদের চ্যানেলে ঘুরে দেখতে পারেন। ফুল টিউটোরিয়াল কোর্স ফ্রী, পাবলিশ করা হয়েছে। Link Here
প্রথমে android-studio সফটওয়্যার ডাউনলোড করুন। সাকসেসফুলি কনফিগার করুন। নতুন একটি প্রজেক্ট তৈরি করুন। তারপর স্টেপ গুলো ফলো করে খুব সহজেই প্রোগ্রাম গুলি লিখুন।
01 Step ( Add Library For Dependencies) build.gradle
// Recycle viewimplementation 'androidx.recyclerview:recyclerview:1.2.1'implementation 'androidx.cardview:cardview:1.0.0'implementation 'com.google.firebase:firebase-database:20.0.3'// FirebaseUI for Firebase Realtime Databaseimplementation 'com.firebaseui:firebase-ui-database:8.0.0'// Online image viewimplementation 'com.github.bumptech.glide:glide:4.13.0'// image view roundimplementation 'de.hdodenhof:circleimageview:3.1.0'
02 Step ( Internet Permission ) \app\src\main\AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itechbangla.myapplication"><uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.MyApplication"> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
03 Step ( Create Item View Layout File )\app\src\main\res\layout\item_design.xml
<?xml version="1.0" encoding="utf-8"?><androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" app:cardCornerRadius="5dp" android:elevation="5dp" app:cardUseCompatPadding="true"> <RelativeLayout android:id="@+id/RelativeLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="15dp"> <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/img1" android:layout_width="80dp" android:layout_height="80dp" android:layout_centerVertical="true" android:src="@mipmap/ic_launcher" app:civ_border_color="#FF000000" app:civ_border_width="2dp" /> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_toRightOf="@id/img1" android:text="Name" android:textColor="#000" android:textSize="20dp" android:textStyle="bold" /> <TextView android:id="@+id/nametext" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_toRightOf="@id/name" android:text="This is Demo Name" android:textColor="#000" android:textSize="21dp" android:textStyle="bold" /> <TextView android:id="@+id/coursetext" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/nametext" android:layout_marginLeft="10dp" android:layout_toRightOf="@id/img1" android:text="This is Course Name" android:textColor="#000" android:textSize="21dp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/emailtext" android:text="This is Email Name" android:textSize="21dp" android:textColor="#000" android:layout_toRightOf="@id/img1" android:layout_below="@id/coursetext" android:layout_marginLeft="10dp"/> </RelativeLayout></androidx.cardview.widget.CardView>
04 Step (Create a Java Class View ) \app\src\main\java\com\example\app\Data_Model_Constructor.java
public class Data_Model_Constructor{ String name,course,email,purl; Data_Model_Constructor() { } public Data_Model_Constructor(String name, String course, String email, String purl) { this.name = name; this.course = course; this.email = email; this.purl = purl; } public String getName() { return name; } public void setName(String name) { this.name = name; } 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 getPurl() { return purl; } public void setPurl(String purl) { this.purl = purl; }}
05 Step (Create a Java Class Data Adapter View ) \app\src\main\java\com\example\app\Data_Adapter.java
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 com.bumptech.glide.Glide;import com.firebase.ui.database.FirebaseRecyclerAdapter;import com.firebase.ui.database.FirebaseRecyclerOptions;import de.hdodenhof.circleimageview.CircleImageView;public class Data_Adapter extends FirebaseRecyclerAdapter<Data_Model_Constructor, Data_Adapter.myviewholder>{ public Data_Adapter(@NonNull FirebaseRecyclerOptions<Data_Model_Constructor> options) { super(options); } @Override protected void onBindViewHolder(@NonNull myviewholder holder, int position, @NonNull Data_Model_Constructor model) { holder.name.setText(model.getName()); holder.course.setText(model.getCourse()); holder.email.setText(model.getEmail()); Glide.with(holder.img.getContext()).load(model.getPurl()).into(holder.img); } @NonNull @Override public myviewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_design,parent,false); return new myviewholder(view); } class myviewholder extends RecyclerView.ViewHolder { CircleImageView img; TextView name,course,email; public myviewholder(@NonNull View itemView) { super(itemView); img=(CircleImageView)itemView.findViewById(R.id.img1); name=(TextView)itemView.findViewById(R.id.nametext); course=(TextView)itemView.findViewById(R.id.coursetext); email=(TextView)itemView.findViewById(R.id.emailtext); } }}
06 Step (Main View Activity ) \app\src\main\java\com\example\app\MainActivity.java
import androidx.appcompat.app.AppCompatActivity;import androidx.recyclerview.widget.LinearLayoutManager;import androidx.recyclerview.widget.RecyclerView;import android.os.Bundle;import com.firebase.ui.database.FirebaseRecyclerOptions;import com.google.firebase.database.FirebaseDatabase;public class MainActivity extends AppCompatActivity { RecyclerView recview; Data_Adapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setTitle(""); recview=(RecyclerView)findViewById(R.id.recview); recview.setLayoutManager(new LinearLayoutManager(this)); FirebaseRecyclerOptions<Data_Model_Constructor> options = new FirebaseRecyclerOptions.Builder<Data_Model_Constructor>() .setQuery(FirebaseDatabase.getInstance().getReference().child("mylistdataweb"), Data_Model_Constructor.class) .build(); adapter=new Data_Adapter(options); recview.setAdapter(adapter); } @Override protected void onStart() { super.onStart(); adapter.startListening(); } @Override protected void onStop() { super.onStop(); adapter.stopListening(); }}
07 Step ( Main Layout File )\app\src\main\res\layout\activity_main.xml
<?xml version="1.0" encoding="utf-8"?><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/recview" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>
08 Step
ফায়ারবেজ একটা প্রজেক্ট তৈরি করুন। অলরেডি প্রজেক্ট তৈরি করা থাকলে প্রজেক্টে লগইন করুন। একটা অ্যাপস রেজিস্ট্রেশন করুন। ফায়ারবেজ জসন ফাইল ডাউনলোড করুন । জেসন ফাইল অ্যান্ড্রয়েড স্টুডিও তে ইনপুট করুন।
09 Step
ফায়ারবেজ একটা প্রজেক্ট তৈরি করুন। অলরেডি প্রজেক্ট তৈরি করা থাকলে প্রজেক্টে লগইন করুন। রেল টাইম ডাটাবেজ তৈরি করুন। ডাটাবেজে জেসন ফাইল ইনপুট করুন। অথবা জেসন ফাইল তৈরি করুন।
{ "mylistdataweb" : { "id" : { "course" : "course3", "email" : "email3", "name" : "name 3", "purl" : "https://isoftq.com/shawheeg/2021/11/Logo-Main-300x71.png" }, "id4" : { "course" : "course 4", "email" : "course 4", "name" : "course4", "purl" : "https://isoftq.com/shawheeg/2021/11/Logo-Main-300x71.png" }, "id1" : { "course" : "BD1", "email" : "BD", "name" : "BD", "purl" : "https://isoftq.com/shawheeg/2021/11/Logo-Main-300x71.png" }, "id2" : { "course" : "course2", "email" : "email2", "name" : "name2", "purl" : "https://isoftq.com/shawheeg/2021/11/Logo-Main-300x71.png" } }}
File Size: 108.8K