Advertisement
Informatheus

MyRecyclerAdapter

May 2nd, 2016
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.45 KB | None | 0 0
  1. public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.ViewHolder> {
  2.  
  3.     private MesFragment mParentFragment;
  4.     private ArrayList<ItemMes> mListaItens;
  5.     private Context mContext;
  6.  
  7.     public MyRecyclerAdapter(ArrayList<ItemMes> lista, MesFragment parent, Context ctx) {
  8.         mListaItens = lista;
  9.         mParentFragment = parent;
  10.         mContext = ctx;
  11.     }
  12.  
  13.     @Override
  14.     public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  15.         // create a new view
  16.         View v = LayoutInflater.from(parent.getContext())
  17.                 .inflate(R.layout.item_mes_layout, parent, false);
  18.  
  19.         // set the view's size, margins, paddings and layout parameters
  20.  
  21.         ViewHolder vh = new ViewHolder(v);
  22.         return vh;
  23.     }
  24.  
  25.     @Override
  26.     public void onBindViewHolder(final ViewHolder holder, final int position) {
  27.  
  28.         ItemMes item = mListaItens.get((position));
  29.  
  30.         holder.descricao.setText(item.getDescrição());
  31.         holder.valor.setText(MainActivity.decimalFormatWithCod.format(item.getValor()));
  32.  
  33.         if (item.getTipoItem().equals(ItemMes.TIPO_ITEM_RECEITA)) {
  34.             holder.valor.setTextColor(ContextCompat.getColor(mContext, R.color.cor_valor_entrada));
  35.         } else if (item.getTipoItem().equals(ItemMes.TIPO_ITEM_DESPESA)) {
  36.             holder.valor.setTextColor(ContextCompat.getColor(mContext, R.color.cor_valor_saida));
  37.         }
  38.  
  39.         holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
  40.             @Override
  41.             public boolean onLongClick(View v) {
  42.  
  43.                 new MaterialDialog.Builder(mContext)
  44.                         .title(holder.descricao.getText().toString())
  45.                         .items(R.array.opcoes_longclick_item)
  46.                         .itemsCallbackSingleChoice(-1, new MaterialDialog.ListCallbackSingleChoice() {
  47.                             @Override
  48.                             public boolean onSelection(MaterialDialog dialog, View view, int which, CharSequence text) {
  49.  
  50.                                 switch (which) {
  51.                                     case 0:
  52.                                         mParentFragment.showUpdateItemDialog(position);
  53.                                         return true;
  54.  
  55.                                     case 1:
  56.                                         mParentFragment.showDeleteItemDialog(position);
  57.                                         return true;
  58.                                 }
  59.  
  60.                                 return false;
  61.                             }
  62.                         })
  63.                         .show();
  64.  
  65.                 return true;
  66.             }
  67.         });
  68.  
  69.     }
  70.  
  71.     @Override
  72.     public int getItemCount() {
  73.         return mListaItens.size();
  74.     }
  75.  
  76.     public ArrayList<ItemMes> getList() {
  77.         return mListaItens;
  78.     }
  79.  
  80.     // Essa classe associa itens da View criada no onCreateViewHolder
  81.     // com os views declarados no layout. É por essa classe que vamos setar os valores da lista para os views no metodo onBindViewHolder
  82.     // Sim, é complicado...
  83.     public class ViewHolder extends RecyclerView.ViewHolder {
  84.  
  85.         public TextView descricao;
  86.         public TextView valor;
  87.  
  88.         public ViewHolder(View view) {
  89.             super(view);
  90.  
  91.             descricao = (TextView) itemView.findViewById(R.id.descricao);
  92.             valor = (TextView) itemView.findViewById(R.id.valor);
  93.  
  94.         }
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement