Android Studio Recyclerview Example Text & Image JSON URL



অ্যান্ড্রয়েড স্টুডিও সাহায্যে,কিভাবে রিসাইকেল ভিউ তৈরি করবেন। রিসাইকেল ভিউ তে, কিভাবে জসন ফাইল ডাটা শো করানো হয়। জেসন ফাইল ওয়েবসাইটে আপলোড করে। কিভাবে লিংক করানো হয়। ডাটা কিভাবে অ্যান্ড্রয়েড অ্যাপ এ সো করে।

Android Studio Recyclerview Example Text & Image JSON URL

এই পোস্ট দেখলে সম্পূর্ণ বুঝতে পারবেন শিখতে পারবেন। প্রয়োজন হলে, আমাদের চ্যানেলে ঘুরে দেখতে পারেন। ফুল টিউটোরিয়াল কোর্স ফ্রী, পাবলিশ করা হয়েছে। Link Here

প্রথমে android-studio সফটওয়্যার ডাউনলোড করুন। সাকসেসফুলি কনফিগার করুন। নতুন একটি প্রজেক্ট তৈরি করুন। তারপর স্টেপ গুলো ফলো করে খুব সহজেই প্রোগ্রাম গুলি লিখুন।

01 Step ( Add Library For Dependencies) build.gradle

implementation "androidx.recyclerview:recyclerview:1.2.1"implementation "androidx.cardview:cardview:1.0.0"implementation 'com.squareup.retrofit2:retrofit:2.3.0'implementation 'com.squareup.retrofit2:converter-gson:2.3.0'implementation 'com.squareup.picasso:picasso:2.71828'

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 Drawable File ) \app\src\main\res\drawable\page_border.xml

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <solid android:color="#FFFFFF" />    <stroke        android:width="1dp"        android:color="#CCCCCC" /></shape>

04 Step ( Create Layout File )\app\src\main\res\layout\item_layout.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@drawable/page_border"    android:layout_margin="8dp">    <ImageView        android:id="@+id/car_img"        android:layout_width="150dp"        android:layout_height="90dp"        android:padding="5dp"        android:scaleType="fitStart" />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_toRightOf="@+id/car_img"        android:orientation="vertical"        android:padding="5dp">        <TextView            android:id="@+id/car_name"            android:layout_width="match_parent"            android:layout_height="wrap_content" />        <TextView            android:id="@+id/car_desc"            android:layout_width="match_parent"            android:layout_height="wrap_content" />    </LinearLayout></RelativeLayout>

05 Step (Create a Java Class View ) \app\src\main\java\com\example\app\Data_Constructor.java

import com.google.gson.annotations.Expose;import com.google.gson.annotations.SerializedName;public class Data_Constructor {    @SerializedName("id")    @Expose    private String id;    @SerializedName("name")    @Expose    private String name;    @SerializedName("desc")    @Expose    private String desc;    @SerializedName("image")    @Expose    private String image;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getDesc() {        return desc;    }    public void setDesc(String desc) {        this.desc = desc;    }    public String getImage() {        return image;    }    public void setImage(String image) {        this.image = image;    }}

06 Step (Create a Java Class View ) \app\src\main\java\com\example\app\DataAdapter.java

import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Filter;import android.widget.Filterable;import android.widget.ImageView;import android.widget.TextView;import androidx.recyclerview.widget.RecyclerView;import com.squareup.picasso.Picasso;import java.util.ArrayList;public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> implements Filterable {    private ArrayList<Data_Constructor> articles=new ArrayList<>();    private ArrayList<Data_Constructor> mArrayList=new ArrayList<>();    private Context context;    public DataAdapter(ArrayList<Data_Constructor> articles, Context context) {        this.context=context;        this.articles=articles;        this.mArrayList=articles;    }    @Override    public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_layout, viewGroup, false);        return new ViewHolder(view);    }    @Override    public Filter getFilter() {        return new Filter() {            @Override            protected FilterResults performFiltering(CharSequence charSequence) {                String charString = charSequence.toString();                if (charString.isEmpty()) {                    articles = mArrayList;                } else {                    ArrayList<Data_Constructor> filteredList = new ArrayList<>();                    for (Data_Constructor CarItem : mArrayList) {                        if (CarItem.getName().toLowerCase().contains(charString)) {                            filteredList.add(CarItem);                        }                    }                    articles = filteredList;                }                FilterResults filterResults = new FilterResults();                filterResults.values = articles;                return filterResults;            }            @Override            protected void publishResults(CharSequence charSequence, FilterResults filterResults) {                articles = (ArrayList<Data_Constructor>) filterResults.values;                notifyDataSetChanged();            }        };    }    @Override    public void onBindViewHolder(DataAdapter.ViewHolder viewHolder, final int i) {        final String car_name=articles.get(i).getName();        final String car_desc=articles.get(i).getDesc();        viewHolder.car_name.setText(car_name);        viewHolder.car_desc.setText(car_desc);        Picasso.get().load(articles.get(i).getImage()).resize(60,60).into(viewHolder.car_img);    }    @Override    public int getItemCount() {        return articles.size();    }    public class ViewHolder extends RecyclerView.ViewHolder{        private TextView car_name,car_desc;        private ImageView car_img;        public ViewHolder(View view) {            super(view);            car_name = (TextView)view.findViewById(R.id.car_name);            car_desc = (TextView)view.findViewById(R.id.car_desc);            car_img = (ImageView)view.findViewById(R.id.car_img);        }    }}

07 Step (Create a Java Class View ) \app\src\main\java\com\example\app\http.java

import java.util.List;import retrofit2.Call;import retrofit2.http.GET;interface http {    @GET("cars_list.json")    Call<List<Data_Constructor>> getJson();}

08 Step ( Main Layout File )\app\src\main\res\layout\activity_main.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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/cars_list"        tools:listitem="@layout/item_layout"        android:layout_width="match_parent"        android:layout_height="wrap_content"/>    <ProgressBar        android:id="@+id/progress_bar"        android:layout_centerInParent="true"        android:layout_width="wrap_content"        android:layout_height="wrap_content" /></RelativeLayout>

09 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 android.view.View;import android.widget.ProgressBar;import android.widget.Toast;import java.util.ArrayList;import java.util.List;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;public class MainActivity extends AppCompatActivity {    private DataAdapter dataAdapter;    private ArrayList<Data_Constructor> CarItems=new ArrayList<>();    private RecyclerView mRecyclerView;    private ProgressBar mProgressBar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //// Progress Bar Initialize        mProgressBar=(ProgressBar)findViewById(R.id.progress_bar);        //// Recycler View Initialize        mRecyclerView=(RecyclerView)findViewById(R.id.cars_list);        //// Layout Manager View Initialize        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));        parseJson();    }    //// parse Json File Data Website Call    private void parseJson() {        Retrofit retrofit = new Retrofit.Builder()                .baseUrl("https://gist.githubusercontent.com/Navneet7k/c6ea0b944dd9e688386e99658f4168b8/raw/7decf7aad83f2e1c1107eff869a13f59bd840740/")                .addConverterFactory(GsonConverterFactory.create())                .build();        http request = retrofit.create(http.class);        Call<List<Data_Constructor>> call1=request.getJson();        call1.enqueue(new Callback<List<Data_Constructor>>() {            @Override            public void onResponse(Call<List<Data_Constructor>> call, Response<List<Data_Constructor>> response) {                mProgressBar.setVisibility(View.GONE);                if (response.isSuccessful() && response.body()!=null) {                    CarItems = new ArrayList<>(response.body());                    dataAdapter=new DataAdapter(CarItems,MainActivity.this);                    mRecyclerView.setAdapter(dataAdapter);                }            }            @Override            public void onFailure(Call<List<Data_Constructor>> call, Throwable t) {                mProgressBar.setVisibility(View.VISIBLE);                Toast.makeText(MainActivity.this,"Oops! Something went wrong!", Toast.LENGTH_SHORT).show();            }        });    }}

আপনি যদি আপনার সার্ভারে, কাস্টম ডাটাবেজ তৈরী করতে চান, তাহলে কিভাবে তৈরি করবেন । দয়া করে এই ফাইলটি অনুসরণ করে, তৈরি করার চেষ্টা করুন। কাস্টম ডাটাবেজ তৈরী করুন আপনার সার্ভারে আপলোড করুন।

01 অ্যান্ড্রয়েড স্টুডিও থেকে সার্ভার লিঙ্ক চেঞ্জ করুন। (\app\src\main\java\com\example\app\MainActivity.java 

.baseUrl(“https://bd124.com/”)

02 কাস্টমস ফাইল যদি তৈরি করেন তাহলে নাম চেঞ্জ করুন। অ্যান্ড্রয়েড স্টুডিও থেকে।  (\app\src\main\java\com\example\app\http.java 

@GET(“file.json”)


[  {    "id": "1",    "name": "Mercedes Benz",    "desc": "Mercedes Benz is a global automobile marque and a division of the German company Daimler AG. The brand is known for luxury vehicles, buses, coaches, and lorries. The headquarters is in Stuttgart, Baden-Württemberg. The name first appeared in 1926 under Daimler-Benz.",    "image": "https://drive.google.com/uc?id=11St5abH8NXzxS0LtuqimDaV3IDsXW-bW"  },  {    "id": "2",    "name": "BMW",    "desc": "BMW AG, originally an initialism for Bayerische Motoren Werke in German, or Bavarian Motor Works in English) is a German multinational company which currently produces luxury automobiles and motorcycles, and also produced aircraft engines until 1945.",    "image": "https://drive.google.com/uc?id=1vo815XZpsVgStC-gU9-O_oP3SeBoA6T4"  },  {    "id": "3",    "name": "Bentley",    "desc": "Bentley Motors Limited is a British manufacturer and marketer of luxury cars and SUVs—and a subsidiary of the Volkswagen Group since 1998.",    "image": "https://drive.google.com/uc?id=1J26Rmf_sPjUdEgiAesHqN8i5o-JlOwSl"  }]

 

সিম্পল ডাটা লিস্ট রিসাইকেলেরভিউ তৈরি করতে চাইলে পিছনের পোস্ট দেখুন। 


একটি মন্তব্য পোস্ট করুন

নবীনতর পূর্বতন