Professional Documents
Culture Documents
java
Membuat .xml
Memunculkan gambar
package com.example.emiliyana.myrecyclerviewmila;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import java.util.ArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setActionBarTitle("Mode List");
showRecyclerList();
}
ItemClickSupport.addTo(rvCategory).setOnItemClickListener(new
ItemClickSupport.OnItemClickListener() {
@Override
public void onItemClicked(RecyclerView recyclerView, int position, View v) {
showSelectedPresident(list.get(position));
}
});
}
ItemClickSupport.addTo(rvCategory).setOnItemClickListener(new
ItemClickSupport.OnItemClickListener() {
@Override
public void onItemClicked(RecyclerView recyclerView, int position, View v) {
showSelectedPresident(list.get(position));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
case R.id.action_cardview:
title = "Mode CardView";
showRecyclerCardView();
break;
}
setActionBarTitle(title);
return super.onOptionsItemSelected(item);
}
}
CardViewPresidentAdapter.Java
package com.example.emiliyana.myrecyclerviewmila;
/**
* Created by mila on 24/05/2018.
*/
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import java.util.ArrayList;
@Override
public void onBindViewHolder(CardViewViewHolder holder, int position) {
President p = getListPresident().get(position);
Glide.with(context)
.load(p.getPhoto())
.override(350, 550)
.into(holder.imgPhoto);
holder.tvName.setText(p.getName());
holder.tvRemarks.setText(p.getRemarks());
@Override
public void onItemClicked(View view, int position) {
Toast.makeText(context, "Favorite "+getListPresident().get(position).getName(),
Toast.LENGTH_SHORT).show();
}
}));
@Override
public void onItemClicked(View view, int position) {
Toast.makeText(context, "Share " + getListPresident().get(position).getName(),
Toast.LENGTH_SHORT).show();
}
}));
}
@Override
public int getItemCount() {
return getListPresident().size();
}
CustomOnItemClickListener.Java
package com.example.emiliyana.myrecyclerviewmila;
/**
* Created by mila on 24/05/2018.
*/
import android.view.View;
@Override
public void onClick(View view) {
onItemClickCallback.onItemClicked(view, position);
}
public interface OnItemClickCallback {
void onItemClicked(View view, int position);
}
}
GridPresidentAdapter.Java
package com.example.emiliyana.myrecyclerviewmila;
/**
* Created by mila on 24/05/2018.
*/
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import java.util.ArrayList;
@Override
public GridViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view =
LayoutInflater.from(parent.getContext()).inflate(R.layout.item_grid_president, parent, false);
GridViewHolder gridViewHolder = new GridViewHolder(view);
return gridViewHolder;
}
@Override
public void onBindViewHolder(GridViewHolder holder, int position) {
Glide.with(context)
.load(getListPresident().get(position).getPhoto())
.override(350, 550)
.into(holder.imgPhoto);
}
@Override
public int getItemCount() {
return getListPresident().size();
}
public class GridViewHolder extends RecyclerView.ViewHolder{
ImageView imgPhoto;
public GridViewHolder(View itemView) {
super(itemView);
imgPhoto = (ImageView)itemView.findViewById(R.id.img_item_photo);
}
}
}
ItemClickSupport.Java
package com.example.emiliyana.myrecyclerviewmila;
/**
* Created by mila on 24/05/2018.
*/
import android.support.v7.widget.RecyclerView;
import android.view.View;
@Override
public void onClick(View v) {
if (mOnItemClickListener != null) {
RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(v);
mOnItemClickListener.onItemClicked(mRecyclerView,
holder.getAdapterPosition(), v);
}
}
};
private View.OnLongClickListener mOnLongClickListener = new
View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (mOnItemLongClickListener != null) {
RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(v);
return mOnItemLongClickListener.onItemLongClicked(mRecyclerView,
holder.getAdapterPosition(), v);
}
return false;
}
};
private RecyclerView.OnChildAttachStateChangeListener mAttachListener
= new RecyclerView.OnChildAttachStateChangeListener() {
@Override
public void onChildViewAttachedToWindow(View view) {
if (mOnItemClickListener != null) {
view.setOnClickListener(mOnClickListener);
}
if (mOnItemLongClickListener != null) {
view.setOnLongClickListener(mOnLongClickListener);
}
}
@Override
public void onChildViewDetachedFromWindow(View view) {
}
};
public static ItemClickSupport addTo(RecyclerView view) {
ItemClickSupport support = (ItemClickSupport) view.getTag(R.id.item_click_support);
if (support == null) {
support = new ItemClickSupport(view);
}
return support;
}
public static ItemClickSupport removeFrom(RecyclerView view) {
ItemClickSupport support = (ItemClickSupport) view.getTag(R.id.item_click_support);
if (support != null) {
support.detach(view);
}
return support;
}
public ItemClickSupport setOnItemClickListener(OnItemClickListener listener) {
mOnItemClickListener = listener;
return this;
}
public ItemClickSupport setOnItemLongClickListener(OnItemLongClickListener listener)
{
mOnItemLongClickListener = listener;
return this;
}
private void detach(RecyclerView view) {
view.removeOnChildAttachStateChangeListener(mAttachListener);
view.setTag(R.id.item_click_support, null);
}
public interface OnItemClickListener {
void onItemClicked(RecyclerView recyclerView, int position, View v);
}
public interface OnItemLongClickListener {
boolean onItemLongClicked(RecyclerView recyclerView, int position, View v);
}
}
ListPresidentAdapter.Java
package com.example.emiliyana.myrecyclerviewmila;
/**
* Created by mila on 24/05/2018.
*/
import android.content.Context;
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 com.bumptech.glide.Glide;
import java.util.ArrayList;
private ArrayList<President>listPresident;
@Override
public CategoryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemRow =
LayoutInflater.from(parent.getContext()).inflate(R.layout.item_row_president, parent, false);
return new CategoryViewHolder(itemRow);
}
@Override
public void onBindViewHolder(CategoryViewHolder holder, int position) {
holder.tvName.setText(getListPresident().get(position).getName());
holder.tvRemarks.setText(getListPresident().get(position).getRemarks());
Glide.with(context)
.load(getListPresident().get(position).getPhoto())
.override(55, 55)
.crossFade()
.into(holder.imgPhoto);
}
@Override
public int getItemCount() {
return getListPresident().size();
}
package com.example.emiliyana.myrecyclerviewmila;
/**
* Created by mila on 24/05/2018.
*/
public class President {
private String name, remarks, photo;
PresidentData.Java
package com.example.emiliyana.myrecyclerviewmila;
/**
* Created by mila on 24/05/2018.
*/
import java.util.ArrayList;
list.add(president);
}
return list;
}
}
Activity_main.xml
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_category"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Item_cardview_president.xml
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginBottom="4dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="4dp"
card_view:cardCornerRadius="4dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:padding="8dp">
<ImageView
android:id="@+id/img_item_photo"
android:layout_width="150dp"
android:layout_height="220dp"
android:layout_marginBottom="4dp"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/tv_item_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="@dimen/activity_vertical_margin"
android:layout_marginRight="@dimen/activity_vertical_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:layout_toRightOf="@id/img_item_photo"
android:text="Name"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_item_remarks"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tv_item_name"
android:layout_marginBottom="8dp"
android:layout_marginLeft="@dimen/activity_vertical_margin"
android:layout_marginRight="@dimen/activity_vertical_margin"
android:layout_toRightOf="@id/img_item_photo"
android:text="Remarks" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_toRightOf="@id/img_item_photo"
android:orientation="horizontal">
<Button
android:id="@+id/btn_set_favorite"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Favorite"
android:textSize="11sp" />
<Button
android:id="@+id/btn_set_share"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Share"
android:textSize="11sp" />
</LinearLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
Item_grid_president.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/img_item_photo"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_margin="1dp"
android:scaleType="centerCrop" />
</LinearLayout>
Item_row_president.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="@dimen/activity_vertical_margin">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/img_item_photo"
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_marginRight="@dimen/activity_horizontal_margin" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/img_item_photo"
android:orientation="vertical">
<TextView
android:id="@+id/tv_item_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="Name"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_item_remarks"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Remarks" />
</LinearLayout>
</RelativeLayout>
Colors.xml
Dimens.xml
Strings.xml
<resources>
<string name="app_name">MyRecyclerViewMila</string>
</resources>
Styles.xml
<resources>
Ids.xml
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.example.emiliyana.myrecyclerviewmila"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-
rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile 'com.android.support:recyclerview-v7:25.0.0'
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.android.support:cardview-v7:25.0.0'
}
Menu_main.xml
</menu>
AndroidManifest.xml
<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" />
</manifest>