How to Open a Different Activity on Recyclerview Item Onclick

How to open a different activity on recyclerView item onclick

You can (but don't need to because the ViewHolder class is not static) create field context as is shown below:

private final Context context;

public MyViewHolder(View itemView) {
super(itemView);
context = itemView.getContext();
...
}

and on your onClick method just call sth like below:

@Override
public void onClick(View v) {

final Intent intent;
switch (getAdapterPostion()){
case 0:
intent = new Intent(context, FirstActivity.class);
break;

case 1:
intent = new Intent(context, SecondActivity.class);
break;
...
default:
intent = new Intent(context, DefaultActivity.class);
break;
}
context.startActivity(intent);
}

or

@Override
public void onClick(View v) {

final Intent intent;
if (getAdapterPosition() == sth){
intent = new Intent(context, OneActivity.class);
} else if (getPosition() == sth2){
intent = new Intent(context, SecondActivity.class);
} else {
intent = new Intent(context, DifferentActivity.class);
}
context.startActivity(intent);
}

How to open different activities with Recycle view items using on click listeners

viewHolder.tv_country.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if(countries.get(i).equalsIgnoreCase("India")){

// open activiy here
}

else if(countries.get(i).equalsIgnoreCase("Germany")){
// open activiy here
}

.
.
.
});

How to open few different activites on recyclerview different item click using if or case method?

here is your onClick() code

holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (position == 0) {
Intent intent = new Intent(v.getContext(), FirstActivity.class);
mContext.startActivity(intent);
} else if (position == 1) {
Intent intent = new Intent(v.getContext(), SecondActivity.class);
mContext.startActivity(intent);
} else if (position == 2) {
Intent intent = new Intent(v.getContext(), ThirdActivity.class);
mContext.startActivity(intent);
} else if (position == 3) {
Intent intent = new Intent(v.getContext(), FourthActivity.class);
mContext.startActivity(intent);
}

}
});


Related Topics



Leave a reply



Submit