I want to make only one element of the viewer that is not recyclable, not the entire viewer. How can i do this? I do not want btnSave be able to be processed, as its state may be different for each line.
Here is the code of what I have done so far:
public static class AlertViewHolder extends RecyclerView.ViewHolder { TextView tvTitle, tvDescription; Button btnLink, btnSave; AlertViewHolder(View itemView) { super(itemView); tvTitle = (TextView) itemView.findViewById(R.id.tvTitle); tvDescription = (TextView) itemView.findViewById(R.id.tvDescription); btnLink = (Button) itemView.findViewById(R.id.btnLink); btnSave = (Button) itemView.findViewById(R.id.btnSave); btnLink.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(alerts.get(getAdapterposition()).getLink())); context.startActivity(browserIntent); } }); btnSave.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onSaveClicked(view); } }); this.setIsRecyclable(false); } void onSaveClicked(View view) { DbHelper.getInstance(context).addSavedFeedRecord(alerts.get(getAdapterPosition())); Snackbar.make(view, "Item Saved", Snackbar.LENGTH_LONG) .setAction("UNDO", null).show(); view.setEnabled(false); } }
or else:
@Override public void onBindViewHolder(AlertViewHolder alertViewHolder, final int i) { alertViewHolder.setIsRecyclable(false); alertViewHolder.tvDescription.setText(alerts.get(i).getDesc()); }
performance android android-recyclerview android-viewholder
Anudeep Samaiya Oct 02 '15 at 5:26 2015-10-02 05:26
source share