Sunday, May 26, 2019

Recyclerview

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 view 
       recyclerView.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;
        }

        @Override
        public 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.RecyclerView
        android: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">

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"  
      android:layout_height="250dp"
        android:scaleType="center" />

    <TextView 
       android: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>

No comments:

Alert Dialog Box

Alert Dialog Box Android AlertDialog   can be used to display the dialog message with OK and Cancel buttons. It can be used to inter...