Skip to content

Instantly share code, notes, and snippets.

@Binary-Finery
Created January 21, 2019 12:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Binary-Finery/80973f7020ae0949ccb3c708ef67f389 to your computer and use it in GitHub Desktop.
Save Binary-Finery/80973f7020ae0949ccb3c708ef67f389 to your computer and use it in GitHub Desktop.
recycler view apapter with checkbox's
package com.spencerstudios.multiappuninstaller.adapters;
import android.content.Context;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.spencerstudios.multiappuninstaller.R;
import com.spencerstudios.multiappuninstaller.activities.MainActivity;
import com.spencerstudios.multiappuninstaller.pojos.AppMeta;
import com.spencerstudios.multiappuninstaller.utilities.Utils;
import java.text.DateFormat;
import java.util.List;
public class AppListAdapter extends RecyclerView.Adapter<AppListAdapter.ViewHolder> {
private List<AppMeta> appMetaList;
private Context context;
public AppListAdapter(List<AppMeta> appMetaList, Context context) {
this.appMetaList = appMetaList;
this.context = context;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.app_rv_item, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
holder.ivAppIcon.setImageDrawable(appMetaList.get(position).getAppIcon());
holder.tvAppName.setText(appMetaList.get(position).getAppName());
holder.tvAppInstallDate.setText(DateFormat.getDateInstance().format(appMetaList.get(position).getFti()));
holder.tvAppSize.setText(Utils.bytesToMb(appMetaList.get(position).getApkSize()));
holder.cbAppSelected.setChecked(appMetaList.get(position).isSelected());
holder.llRoot.setBackgroundColor(appMetaList.get(position).isSelected() ? Color.parseColor("#ffcdd2") : Color.TRANSPARENT);
holder.llRoot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean b = appMetaList.get(holder.getAdapterPosition()).isSelected();
b = !b;
appMetaList.get(holder.getAdapterPosition()).setSelected(b);
holder.llRoot.setBackgroundColor(b ? Color.parseColor("#ffcdd2") : Color.TRANSPARENT);
holder.cbAppSelected.setChecked(b);
((MainActivity) context).setSelectedAppCount();
}
});
}
@Override
public int getItemCount() {
return appMetaList.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
LinearLayout llRoot;
ImageView ivAppIcon;
TextView tvAppName, tvAppInstallDate, tvAppSize;
CheckBox cbAppSelected;
ViewHolder(View itemView) {
super(itemView);
llRoot = itemView.findViewById(R.id.rv_item_root);
ivAppIcon = itemView.findViewById(R.id.iv_app_icon);
tvAppName = itemView.findViewById(R.id.tv_app_name);
tvAppInstallDate = itemView.findViewById(R.id.tv_app_install_date);
cbAppSelected = itemView.findViewById(R.id.cb_app_select);
tvAppSize = itemView.findViewById(R.id.tv_app_size);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment