Recycler view is much better than listview because the data is called only at runtime so it is much faster and useable the code to get recyclerview is given below
Manifest file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.apkglobal.recyclerview"> <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/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
MainActivity.java
package com.vishal.recyclerview; import android.provider.ContactsContract; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { RecyclerView recyclerView; List<Data> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView=findViewById(R.id.recyclerview); //to add linear layout to recycler viewrecyclerView.setLayoutManager(new LinearLayoutManager(this)); // to add gridview layout// recyclerView.setLayoutManager(new GridLayoutManager(this,2));
Myadapter myadapter=new Myadapter(); recyclerView.setAdapter(myadapter); } private class Myadapter extends RecyclerView.Adapter<MyHolder> { public Myadapter(){ list= new ArrayList<>(); list.add(new Data("sony tv",R.mipmap.ic_launcher)); list.add(new Data("sab tv",R.mipmap.ic_launcher)); list.add(new Data("aap tv",R.mipmap.ic_launcher)); list.add(new Data("& tv",R.mipmap.ic_launcher)); list.add(new Data("sony tv",R.mipmap.ic_launcher)); list.add(new Data("sony tv",R.mipmap.ic_launcher)); list.add(new Data("sony tv",R.mipmap.ic_launcher)); list.add(new Data("sony tv",R.mipmap.ic_launcher)); list.add(new Data("sony tv",R.mipmap.ic_launcher)); list.add(new Data("sony tv",R.mipmap.ic_launcher)); } // to attach the design Xml@NonNull@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view= LayoutInflater.from(viewGroup.getContext()) .inflate(R.layout.item,viewGroup,false); MyHolder myHolder=new MyHolder(view); return myHolder; } @Overridepublic void onBindViewHolder(@NonNull MyHolder myHolder, int i) { Data data=list.get(i); myHolder.textView.setText(data.getName()); myHolder.imageView.setImageResource(data.getImage()); } @Override public int getItemCount() { return list.size(); } } private class MyHolder extends RecyclerView.ViewHolder { ImageView imageView; TextView textView; public MyHolder(@NonNull View itemView) { super(itemView); imageView=itemView.findViewById(R.id.image); textView=itemView.findViewById(R.id.name); } } }
activitymain.xml<?xml version="1.0" encoding="utf-8"?><android.support.constraint.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"> <android.support.v7.widget.RecyclerViewandroid:id="@+id/recyclerview"android:layout_width="match_parent"android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView> </android.support.constraint.ConstraintLayout>POJO class
package com.vishal.recyclerview; class Data { String name; int image; public Data(String name, int image) { this.name = name; this.image = image; } public String getName() { return name; } public int getImage() { return image; } }item.xml
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="wrap_content"> <ImageViewandroid:id="@+id/image"android:layout_width="match_parent"android:layout_height="250dp"android:scaleType="center" /> <TextViewandroid:id="@+id/name"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#3200BCD4"android:padding="5dp"app:layout_constraintBottom_toBottomOf="@+id/image" /> </android.support.constraint.ConstraintLayout>