Links & DependenciesExampleAdapter.javaactivity_main.xmlexample_item.xmlExampleItem.javaMainActivity.java
Google Maven Repository:
maven { url "https://maven.google.com" }
RecyclerView & CardView Dependencies:
developer.android.com/topic/libraries/support-library/packages.html#v7-recyclerview
developer.android.com/topic/libraries/support-library/packages.html#v7-cardview
package com.example.application.recyclerviewproject; 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; public class ExampleAdapter extends RecyclerView.Adapter<ExampleAdapter.ExampleViewHolder> { private ArrayList<ExampleItem> mExampleList; public static class ExampleViewHolder extends RecyclerView.ViewHolder { public ImageView mImageView; public TextView mTextView1; public TextView mTextView2; public ExampleViewHolder(View itemView) { super(itemView); mImageView = itemView.findViewById(R.id.imageView); mTextView1 = itemView.findViewById(R.id.textView); mTextView2 = itemView.findViewById(R.id.textView2); } } public ExampleAdapter(ArrayList<ExampleItem> exampleList) { mExampleList = exampleList; } @Override public ExampleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.example_item, parent, false); ExampleViewHolder evh = new ExampleViewHolder(v); return evh; } @Override public void onBindViewHolder(ExampleViewHolder holder, int position) { ExampleItem currentItem = mExampleList.get(position); holder.mImageView.setImageResource(currentItem.getImageResource()); holder.mTextView1.setText(currentItem.getText1()); holder.mTextView2.setText(currentItem.getText2()); } @Override public int getItemCount() { return mExampleList.size(); } }
<?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="com.example.application.recyclerviewproject.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/darker_gray" android:padding="4dp" android:scrollbars="vertical" /> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView 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" android:layout_marginBottom="4dp" app:cardCornerRadius="4dp"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="4dp"> <ImageView android:id="@+id/imageView" android:layout_width="50dp" android:layout_height="50dp" android:padding="2dp" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toEndOf="@+id/imageView" android:text="Line 1" android:textColor="@android:color/black" android:textSize="20sp" android:textStyle="bold" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView" android:layout_marginStart="8dp" android:layout_toEndOf="@+id/imageView" android:text="Line 2" android:textSize="15sp" /> </RelativeLayout> </android.support.v7.widget.CardView>
package com.example.application.recyclerviewproject; public class ExampleItem { private int mImageResource; private String mText1; private String mText2; public ExampleItem(int imageResource, String text1, String text2) { mImageResource = imageResource; mText1 = text1; mText2 = text2; } public int getImageResource() { return mImageResource; } public String getText1() { return mText1; } public String getText2() { return mText2; } }
package com.example.application.recyclerviewproject; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private RecyclerView.Adapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayList<ExampleItem> exampleList = new ArrayList<>(); exampleList.add(new ExampleItem(R.drawable.ic_android, "Line 1", "Line 2")); exampleList.add(new ExampleItem(R.drawable.ic_audio, "Line 3", "Line 4")); exampleList.add(new ExampleItem(R.drawable.ic_sun, "Line 5", "Line 6")); exampleList.add(new ExampleItem(R.drawable.ic_android, "Line 7", "Line 8")); exampleList.add(new ExampleItem(R.drawable.ic_audio, "Line 9", "Line 10")); exampleList.add(new ExampleItem(R.drawable.ic_sun, "Line 11", "Line 12")); exampleList.add(new ExampleItem(R.drawable.ic_android, "Line 13", "Line 14")); exampleList.add(new ExampleItem(R.drawable.ic_audio, "Line 15", "Line 16")); exampleList.add(new ExampleItem(R.drawable.ic_sun, "Line 17", "Line 18")); exampleList.add(new ExampleItem(R.drawable.ic_android, "Line 19", "Line 20")); exampleList.add(new ExampleItem(R.drawable.ic_audio, "Line 21", "Line 22")); exampleList.add(new ExampleItem(R.drawable.ic_sun, "Line 23", "Line 24")); exampleList.add(new ExampleItem(R.drawable.ic_android, "Line 25", "Line 26")); exampleList.add(new ExampleItem(R.drawable.ic_audio, "Line 27", "Line 28")); exampleList.add(new ExampleItem(R.drawable.ic_sun, "Line 29", "Line 30")); mRecyclerView = findViewById(R.id.recyclerView); mRecyclerView.setHasFixedSize(true); mLayoutManager = new LinearLayoutManager(this); mAdapter = new ExampleAdapter(exampleList); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setAdapter(mAdapter); } }