user10238140
user10238140

Reputation:

Recyclerview click with condition

enter image description here

Code

@Override
protected void onBindViewHolder(@NonNull final Chat.MessagesViewHolder holder, final int position, @NonNull final MessagesHelper model) {
    holder.setMessage(model.getMessage());
    final String userId = getRef(position).getKey();
    final DatabaseReference mTimeReference = FirebaseDatabase.getInstance().getReference().child("Messages").child(MessageSenderId).child(MessageRecieverId);
    Query messageQuery = mTimeReference.limitToLast(10);
    messageQuery.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            final String from_user = model.getFrom();
            final boolean Seen = model.isSeen();
            MessagesHelper message = dataSnapshot.getValue(MessagesHelper.class);
            messagesList.add(message);
            messageList.scrollToPosition(messagesList.size() - 1);
        }

Modal

public class MessagesHelper {
    private String From;
    private String Message;
    private String Type;
    private boolean Seen;
    private boolean Online;
    private long Time;

    public MessagesHelper() {
    }

    public MessagesHelper(String From, String Message, String Type, boolean Seen, boolean Online, long Time) {
        this.From = From;
        this.Message = Message;
        this.Type = Type;
        this.Seen = Seen;
        this.Online = Online;
        this.Time = Time;
    }

    public String getFrom() {
        return From;
    }

    public void setFrom(String from) {
        this.From = from;
    }

    public String getMessage() {
        return Message;
    }

    public void setMessage(String message) {
        this.Message = message;
    }

    public String getType() {
        return Type;
    }

    public void setType(String type) {
        this.Type = type;
    }

    public boolean isSeen() {
        return Seen;
    }

    public void setSeen(boolean seen) {
        this.Seen = seen;
    }

    public boolean isOnline() {
        return Online;
    }

    public void setOnline(boolean Online) {
        this.Online = Online;
    }
    public long getTime() {
        return Time;
    }

    public void setTime(long time) {
        this.Time = time;
    }

}

If the type = "Link" i want the item to be clickable... How can i achieve this???

Upvotes: 0

Views: 161

Answers (1)

enesgonez
enesgonez

Reputation: 226

you can check type like this and set item view clickable.

if(type.equals("Link"))
{
   holder.itemView.setClickable(true);
   holder.itemView.setOnClickListener(new View.OnClickListener()
   {
        @Override
        public void onClick(View view)
        {
            // do smoethink
        }
    });
}
else
{
   holder.itemView.setClickable(false);
}

Upvotes: 1

Related Questions