UAS Mobile Programing Aplikasi Login dengan menampilkan Radio Button,ListView dengan Image & Text, dan RecyclerView Menggunakan Android Studio
Deskripsi Aplikasi :
Saya coba membuat Aplikasi Login dengan menampilkan Radio Button,ListView dengan Image & Text, dan RecyclerView Menggunakan Android Studio. Aplikasi nantinya berupa form isian yang terdiri dari :
• Username
• Password
• Sign in
• Sign Up
• Username
• Password
• Sign in
• Sign Up
Setelah form diisi maka selanjutnya tekan tombol sign in dan akan menampilkan :
• RadioButton (YES)
• RadioButton (NO)
• Button Lanjutkan
• Button Keluar
Setelah memilih radiobutton YES dan click tombol lanjutkan maka akan menampilkan listview dan recyclerview,
jika yang dipilih radiobutton NO dan click tombol lanjutkan maka akan memunculkan form login lagi, dan jika yang dipilih keluar maka akan otomatis keluar dari aplikasi.
1. Pertama masukan source code di activity_main.xml sbb:
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/girl"
tools:context="com.login.mobi.loginapp.MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.8"
android:background="@drawable/gradient_bg" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp">
<EditText
android:id="@+id/emailinput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/colorWhite"
android:fontFamily="sans-serif-light"
android:hint="Email"
android:inputType="textEmailAddress"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorWhite"
android:textSize="17sp" />
<EditText
android:id="@+id/passwordinput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/emailinput"
android:layout_marginTop="30dp"
android:backgroundTint="@color/colorWhite"
android:fontFamily="sans-serif-light"
android:hint="Password"
android:inputType="textPassword"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorWhite"
android:textSize="17sp" />
</RelativeLayout>
<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:src="@drawable/ic_google_white" />
<Button
android:id="@+id/btSignIn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/btSignUp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@drawable/button_white"
android:text="Sign In"
android:textColor="@color/colorPrimary" />
<Button
android:id="@+id/btSignUp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@drawable/button_red"
android:text="Sign Up"
android:textColor="@color/colorWhite" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="122dp"
android:text="Abi Sofyana" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/girl"
tools:context="com.login.mobi.loginapp.MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.8"
android:background="@drawable/gradient_bg" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp">
<EditText
android:id="@+id/emailinput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/colorWhite"
android:fontFamily="sans-serif-light"
android:hint="Email"
android:inputType="textEmailAddress"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorWhite"
android:textSize="17sp" />
<EditText
android:id="@+id/passwordinput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/emailinput"
android:layout_marginTop="30dp"
android:backgroundTint="@color/colorWhite"
android:fontFamily="sans-serif-light"
android:hint="Password"
android:inputType="textPassword"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorWhite"
android:textSize="17sp" />
</RelativeLayout>
<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:src="@drawable/ic_google_white" />
<Button
android:id="@+id/btSignIn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/btSignUp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@drawable/button_white"
android:text="Sign In"
android:textColor="@color/colorPrimary" />
<Button
android:id="@+id/btSignUp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@drawable/button_red"
android:text="Sign Up"
android:textColor="@color/colorWhite" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="122dp"
android:text="Abi Sofyana" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
package com.login.mobi.loginapp; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.util.List; public class MainActivity extends AppCompatActivity { private Button btSignIn; private Button btSignUp; private EditText edtEmail; private EditText edtPassword; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btSignIn = findViewById(R.id.btSignIn); btSignUp = findViewById(R.id.btSignUp); edtEmail = findViewById(R.id.emailinput); edtPassword = findViewById(R.id.passwordinput); final DatabaseHelper dbHelper = new DatabaseHelper(this); btSignUp.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!emptyValidation()) { dbHelper.addUser(new User(edtEmail.getText().toString(), edtPassword.getText().toString())); Toast.makeText(MainActivity.this, "Added User", Toast.LENGTH_SHORT).show(); edtEmail.setText(""); edtPassword.setText(""); }else{ Toast.makeText(MainActivity.this, "Empty Fields", Toast.LENGTH_SHORT).show(); } } }); btSignIn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!emptyValidation()) { User user = dbHelper.queryUser(edtEmail.getText().toString(), edtPassword.getText().toString()); if (user != null) { Bundle mBundle = new Bundle(); mBundle.putString("user", user.getEmail()); Intent intent = new Intent(MainActivity.this, UserActivity.class); intent.putExtras(mBundle); startActivity(intent); Toast.makeText(MainActivity.this, "Welcome " + user.getEmail(), Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "User not found", Toast.LENGTH_SHORT).show(); edtPassword.setText(""); } }else{ Toast.makeText(MainActivity.this, "Empty Fields", Toast.LENGTH_SHORT).show(); } } }); } private boolean emptyValidation() { if (TextUtils.isEmpty(edtEmail.getText().toString()) || TextUtils.isEmpty(edtPassword.getText().toString())) { return true; }else { return false; } } }
3. Masukkan sourcode DataBaseHelper.java di \app\src\main\java\com\login\mobi\loginapp\ :
package com.login.mobi.loginapp; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by Abi Sofyana 07/04/2019. */ public class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Context context) { super(context, DatabaseOptions.DB_NAME, null, DatabaseOptions.DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { //Create table db.execSQL(DatabaseOptions.CREATE_USERS_TABLE_); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // Drop older table if existed db.execSQL("DROP TABLE IF EXISTS " + DatabaseOptions.USERS_TABLE); // Create tables again onCreate(db); } public User queryUser(String email, String password) { SQLiteDatabase db = this.getReadableDatabase(); User user = null; Cursor cursor = db.query(DatabaseOptions.USERS_TABLE, new String[]{DatabaseOptions.ID, DatabaseOptions.EMAIL, DatabaseOptions.PASSWORD}, DatabaseOptions.EMAIL + "=? and " + DatabaseOptions.PASSWORD + "=?", new String[]{email, password}, null, null, null, "1"); if (cursor != null) cursor.moveToFirst(); if (cursor != null && cursor.getCount() > 0) { user = new User(cursor.getString(1), cursor.getString(2)); } // return user return user; } public void addUser(User user) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(DatabaseOptions.EMAIL, user.getEmail()); values.put(DatabaseOptions.PASSWORD, user.getPassword()); // Inserting Row db.insert(DatabaseOptions.USERS_TABLE, null, values); db.close(); // Closing database connection } }
4. Masukkan sourcode DataBaseOptions.java di \app\src\main\java\com\login\mobi\loginapp\ :
package com.login.mobi.loginapp;
/** * Created by Abi Sofyana 07/04/2019. */
public class DatabaseOptions { public static final String DB_NAME = "local.db"; public static final int DB_VERSION = 1; public static final String USERS_TABLE = "users"; public static final String ID = "id"; public static final String EMAIL = "email"; public static final String PASSWORD = "password"; public static final String CREATE_USERS_TABLE_ = "CREATE TABLE " + USERS_TABLE + "(" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + EMAIL + " TEXT NOT NULL," + PASSWORD + " TEXT );"; }
5. Masukkan Source code Android Manifest.xml \app\src\main\ :
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.login.mobi.loginapp"> <application android:allowBackup="true" android:icon="@mipmap/login" android:label="Login" android:roundIcon="@mipmap/login" 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> <activity android:name=".UserActivity"></activity> </application> </manifest>
6. Masukkan Source code activity_user.xml di \app\src\main\res\layout\:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:padding="10dp" android:orientation="vertical"> tools:context="com.login.mobi.loginapp.UserActivity"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DO YOU LIKE TRAVELED ????"
android:textSize="30sp" /> <RadioGroup
android:id="@+id/rg_gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"> <RadioButton
android:id="@+id/rb_male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="YES" /> <RadioButton
android:id="@+id/rb_female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NO" /> </RadioGroup> <Button
android:id="@+id/bt_submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="bt_submit"
android:text="Lanjutkan" /> <Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="button"
android:text="Keluar" /> </LinearLayout>
7. Maka tampilannya sbb :
8. Lalu masukkan sourcode UserActivity di \app\src\main\java\com\login\mobi\loginapp\ :
package com.login.mobi.loginapp; import android.app.Activity; import android.content.Intent; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; public class UserActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_user); final RadioGroup rgGender = (RadioGroup) findViewById(R.id.rg_gender); Button btSubmit = (Button) findViewById(R.id.bt_submit); btSubmit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int id = rgGender.getCheckedRadioButtonId(); switch (id){ case R.id.rb_male : Toast.makeText(UserActivity.this,"Clicked "+((RadioButton)findViewById(id)).getText(), Toast.LENGTH_SHORT).show(); break; case R.id.rb_female : Toast.makeText(UserActivity.this,"Clicked "+((RadioButton)findViewById(id)).getText(), Toast.LENGTH_SHORT).show(); break; } } }); } }
9. Lalu masukkan juga User.java di \app\src\main\java\com\login\mobi\loginapp\ :
package com.login.mobi.loginapp; /** * Created by Zoom on 07/04/2019. */ public class User { private int id; private String email; private String password; public User(String email, String password) { this.email = email; this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", email='" + email + '\'' + ", password='" + password + '\'' + '}'; } }
10. Masukkan source code activity_gallery.xml di \app\src\main\res\layout\:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100"> <ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="70"
android:id="@+id/image"
android:scaleType="centerCrop"
android:src="@mipmap/ic_launcher"/> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image_description"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:text="Canada"
android:textSize="20sp"
android:textColor="#000" /> </LinearLayout>
Dan Tampilannya sbb :
11. Masukkan source code Main1Activity.xml di \app\src\main\res\layout\ :
<?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="codingwithmitch.com.recyclerview.MainActivity"> <android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerv_view"> </android.support.v7.widget.RecyclerView> </RelativeLayout>
Dan tampilannya sbb :
12. Masukkan source code layout_listitem.xml di \app\src\main\res\layout\ :
<?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:padding="15dp"
android:id="@+id/parent_layout"> <de.hdodenhof.circleimageview.CircleImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:id="@+id/image"
android:src="@mipmap/ic_launcher"/> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Canada"
android:id="@+id/image_name"
android:layout_toRightOf="@+id/image"
android:textColor="#000"
android:layout_centerVertical="true"
android:layout_marginLeft="30dp"
android:textSize="17sp"/>
</RelativeLayout>
Dan Tampilannya sbb :
13. Masukkan source code GalleryActivity.java di \app\src\main\java\ :
package codingwithmitch.com.recyclerview; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; /** * Created by Abi Sofyana 07/04/2018. */
public class GalleryActivity extends AppCompatActivity { private static final String TAG = "GalleryActivity"; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gallery); Log.d(TAG, "onCreate: started."); getIncomingIntent(); } private void getIncomingIntent(){ Log.d(TAG, "getIncomingIntent: checking for incoming intents."); if(getIntent().hasExtra("image_url") && getIntent().hasExtra("image_name")){ Log.d(TAG, "getIncomingIntent: found intent extras."); String imageUrl = getIntent().getStringExtra("image_url"); String imageName = getIntent().getStringExtra("image_name"); setImage(imageUrl, imageName); } } private void setImage(String imageUrl, String imageName){ Log.d(TAG, "setImage: setting te image and name to widgets."); TextView name = findViewById(R.id.image_description); name.setText(imageName); ImageView image = findViewById(R.id.image); Glide.with(this) .asBitmap() .load(imageUrl) .into(image); } }
14. Masukkan source code Maint1Activity.java di \app\src\main\java\ :
package codingwithmitch.com.recyclerview; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; //vars private ArrayList<String> mNames = new ArrayList<>(); private ArrayList<String> mImageUrls = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG, "onCreate: started."); initImageBitmaps(); } private void initImageBitmaps(){ Log.d(TAG, "initImageBitmaps: preparing bitmaps."); mImageUrls.add("https://www.nativeindonesia.com/wp-content/uploads/2017/10/gambar-monas-di-malam-hari-1.jpg"); mNames.add("Monumen Nasional Jakarta"); mImageUrls.add("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1sCGvdFK3YkA9_19CutYe9sOsPhpglIKK2LeY19__Ilyp9PpUMsP60P6ISBWfS3CJElCpH9P4PlrnZV6anD7wtN74TaBFWkq-mQ_ufgY0FZDuFKZSC8oTrnDTFOX_vaC1_y_nWN4fBqFT/s1600/Wisata+Gunung+Tangkuban+Parahu+Bandung+Jawa+Barat.jpg"); mNames.add("Gunung Tangkuban Perahu Bandung"); mImageUrls.add("https://pulauderawan.co.id/wp-content/uploads/2018/09/Wisata-Derawan-Backpacker-850x638.jpg"); mNames.add("Pulau Derawan Kalimantan Timur"); mImageUrls.add("https://assets-a1.kompasiana.com/items/album/2017/06/27/tmii-5951c2b00bb0bd93102d3f22.jpg"); mNames.add("Taman Mini Indonesia Indah Jakarta Timur"); mImageUrls.add("https://picture.triptrus.com/image/2014/06/kepulauan-raja-ampat-1.jpeg"); mNames.add("Kepulauan Raja Ampat"); mImageUrls.add("https://thumb.viva.co.id/media/frontend/thumbs3/2018/03/28/5abb5b829ab4d-sepuluh-tempat-wisata-terbaik-di-kab-lombok-utara_665_374.jpg"); mNames.add("Pulau Lombok"); mImageUrls.add("https://www.wisatakuliner.com/wisatakuliner/wp-content/uploads/2017/05/Candi-Borobudur-1.jpg"); mNames.add("Candi Borobudur Magelang"); mImageUrls.add("https://i.ytimg.com/vi/OKWvSqHXNlo/hqdefault.jpg"); mNames.add("Candi Perambanan Sleman"); mImageUrls.add("https://bonvoyagejogja.com/wp-content/uploads/2017/03/rsz_cuuq0g2vyaancsu.jpg"); mNames.add("Ranto Canyon Kabupaten Brebes"); mImageUrls.add("https://pbs.twimg.com/media/CyQ1MYAVQAA311Z.jpg"); mNames.add("Kalibaya Kabupaten Brebes"); initRecyclerView(); } private void initRecyclerView(){ Log.d(TAG, "initRecyclerView: init recyclerview."); RecyclerView recyclerView = findViewById(R.id.recyclerv_view); RecyclerViewAdapter adapter = new RecyclerViewAdapter(this, mNames, mImageUrls); recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(this)); } }
15. Masukkan source code RecyclerViewAdapter.java di \app\src\main\java\ :
package codingwithmitch.com.recyclerview; import android.content.Context; import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.bumptech.glide.Glide; import org.w3c.dom.Text; import java.lang.reflect.Array; import java.util.ArrayList; import de.hdodenhof.circleimageview.CircleImageView; /** * Created by Abi Sofyana 07/04/2019. */
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{ private static final String TAG = "RecyclerViewAdapter"; private ArrayList<String> mImageNames = new ArrayList<>(); private ArrayList<String> mImages = new ArrayList<>(); private Context mContext; public RecyclerViewAdapter(Context context, ArrayList<String> imageNames, ArrayList<String> images ) { mImageNames = imageNames; mImages = images; mContext = context; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_listitem, parent, false); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(ViewHolder holder, final int position) { Log.d(TAG, "onBindViewHolder: called."); Glide.with(mContext) .asBitmap() .load(mImages.get(position)) .into(holder.image); holder.imageName.setText(mImageNames.get(position)); holder.parentLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d(TAG, "onClick: clicked on: " + mImageNames.get(position)); Toast.makeText(mContext, mImageNames.get(position), Toast.LENGTH_SHORT).show(); Intent intent = new Intent(mContext, GalleryActivity.class); intent.putExtra("image_url", mImages.get(position)); intent.putExtra("image_name", mImageNames.get(position)); mContext.startActivity(intent); } }); } @Override public int getItemCount() { return mImageNames.size(); } public class ViewHolder extends RecyclerView.ViewHolder{ CircleImageView image; TextView imageName; RelativeLayout parentLayout; public ViewHolder(View itemView) { super(itemView); image = itemView.findViewById(R.id.image); imageName = itemView.findViewById(R.id.image_name); parentLayout = itemView.findViewById(R.id.parent_layout); } } }
Dan jalankan aplikasinya di android, kebetulan saya pake Xiaomi MI 5,,
Dan Hasilnya sbb :